成員變量
對(duì)象的創(chuàng)建
創(chuàng)建對(duì)象的過(guò)程稱(chēng)之為實(shí)例化,當(dāng)一個(gè)對(duì)象被創(chuàng)建后,包含三個(gè)方面的特性對(duì)象聚丙屬性和方法,
句柄用于區(qū)分不同的對(duì)象,
對(duì)象的屬性和方法,與類(lèi)中的成員變量和成員函數(shù)對(duì)應(yīng),
obj = MyClass()創(chuàng)建類(lèi)的一個(gè)實(shí)例,擴(kuò)號(hào)對(duì)象,通過(guò)對(duì)象來(lái)調(diào)用方法和屬性
類(lèi)的屬性按使用范圍分為公有屬性和私有屬性類(lèi)的屬性范圍,取決于屬性的名稱(chēng),
共有屬性---在內(nèi)中和內(nèi)外都能夠調(diào)用的屬性
私有屬性---不能在內(nèi)外貝類(lèi)以外函數(shù)調(diào)用
定義方式:以""雙下劃線開(kāi)始的成員變量就是私有屬性
可以通過(guò)instance.classnameattribute方式訪問(wèn),
內(nèi)置屬性--由系統(tǒng)在定義類(lèi)的時(shí)候默認(rèn)添加的由前后雙下劃線構(gòu)成,如dic,module__
#!/usr/bin/env python
#-*- coding:utf-8 -*-
class People(object):
color = 'yellow'
__age = 30 #私有屬性
def think(self):
self.color = "black"
print "I am a %s " % self.color
print ("I am a thinker")
print self.__age
ren = People()
ren.color = '白色人'
print ren.color
ren.think()
print '#'*30
print("People.color")
print ren.__People__age ##測(cè)試時(shí)使用。如要調(diào)用 時(shí),通過(guò)方法內(nèi)調(diào)用 。
成員函數(shù)
類(lèi)的方法
方法的定義和函數(shù)一樣,但是需要self作為第一個(gè)參數(shù).
類(lèi)方法為:
公有方法
私有方法
類(lèi)方法
靜態(tài)方法
公有方法:在類(lèi)中和類(lèi)外都都測(cè)調(diào)用的方法.
私有方法:不測(cè)被類(lèi)的外部調(diào)用模塊,在方法前加個(gè)“__”c雙下劃線就是私有方法。
self參數(shù):
用于區(qū)分函數(shù)和類(lèi)的方法(必須有一個(gè)self)
self參數(shù)表示執(zhí)行對(duì)象本身
#!/usr/bin/env python
#-*- coding:utf-8 -*-
class People(object):
color = 'yellow'
__age = 30 #私有屬性
def think(self):
self.color = "black"
print "I am a %s " % self.color
print ("I am a thinker")
print self.__age
def test(self):
self.think() # 內(nèi)部調(diào)用
jack = People()
jack.test() #外部調(diào)用
#!/usr/bin/env python
#-*- coding:utf-8 -*-
class People(object):
color = 'yellow'
__age = 30 #私有屬性
def think(self):
self.color = "black"
print "I am a %s " % self.color
print ("I am a thinker")
print self.__age
def __talk(self):
print "I am talking with Tom"
def test(self):
self.__talk() # 內(nèi)部調(diào)用talk()
jack = People()
jack.test() #外部調(diào)用
類(lèi)方法
類(lèi)方法:被classmethod()函數(shù)處理過(guò)的函數(shù),能被類(lèi)所調(diào)用,也能被對(duì)象所調(diào)用(是繼承的關(guān)系)。
靜態(tài)方法:相當(dāng)于“全局函數(shù)”,可以被類(lèi)直接調(diào)用,可以被所有實(shí)例化對(duì)象共享,通過(guò)staticmethod()定義靜態(tài)方法, 靜態(tài)方法沒(méi)有self參數(shù)
裝飾器:@classmethod()
br/>@classmethod()
#!/usr/bin/env python
#-*- coding:utf-8 -*-
class People(object):
color = 'yellow'
__age = 30 #私有屬性
def think(self):
self.color = "black"
print "I am a %s " % self.color
print ("I am a thinker")
print self.__age
def __talk(self):
print "I am talking with Tom"
def test(self):
print 'Testing....'
cm = classmethod(test)
jack = People()
People.cm()
通過(guò)類(lèi)方法類(lèi)內(nèi)的方法 ,不涉及的屬性和方法 不會(huì)被加載,節(jié)省內(nèi)存,快。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
class People(object):
color = 'yellow'
__age = 30 #私有屬性
def think(self):
self.color = "black"
print "I am a %s " % self.color
print ("I am a thinker")
print self.__age
def __talk(self):
print "I am talking with Tom"
def test(): ##沒(méi)有self 靜態(tài)調(diào)用 會(huì)把所有的屬性加載到內(nèi)存里。
print People.__age # 通過(guò)類(lèi)訪問(wèn)內(nèi)部變量
sm = staticmethod(test)
jack = People()
People.sm()
裝飾調(diào)用類(lèi)的方法:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
class People(object):
color = 'yellow'
__age = 30 #私有屬性
def think(self):
self.color = "black"
print "I am a %s " % self.color
print ("I am a thinker")
print self.__age
def __talk(self):
print "I am talking with Tom"
@classmethod #調(diào)用類(lèi)的方法
def test(self):
print ("this is class method")
@staticmethod #調(diào)用類(lèi)的方法
def test1():
print ("this is static method")
jack = People()
People.test()
People.test1()
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前題目:Python中的類(lèi)和方法使用舉例-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://aaarwkj.com/article16/dppsdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站策劃、建站公司、網(wǎng)站排名、域名注冊(cè)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容