真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python的cls函數(shù),cls是什么函數(shù)

什么時(shí)候使用python類cls方法

cls是class的縮寫。

專注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)碧江免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了數(shù)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

class A:

member = "this is a test."

def __init__(self):

pass

@classmethod

def Print1(cls):

#榪欎釜鏄被鏂規(guī)硶

print "print 1: ", cls.member

def Print2(self):

print "print 2: ", self.member

@classmethod

def Print3(paraTest):

print "print 3: ", paraTest.member

a = A()

A.Print1() #相當(dāng)于Print1(A)

a.Print2() #相當(dāng)于Print2(a), 請(qǐng)注意@classmethod

A.Print3()

可以看出來,python在通過“.”調(diào)用成員函數(shù)的時(shí)候,會(huì)將“.”前面的東西當(dāng)作函數(shù)的第一個(gè)參數(shù)調(diào)用。

而且pyhon并不關(guān)心我們把類的成員函數(shù)的第一個(gè)參數(shù)的名稱是什么,我們可以用任意的名稱,可以看Print3的定義就知道了。

python中的cls到底指的是什么,與self有什么區(qū)別

普通的方法,第一個(gè)參數(shù)需要是self,它表示一個(gè)具體的實(shí)例本身。

如果用了staticmethod,那么就可以無視這個(gè)self,而將這個(gè)方法當(dāng)成一個(gè)普通的函數(shù)使用。

而對(duì)于classmethod,它的第一個(gè)參數(shù)不是self,是cls,它表示這個(gè)類本身。

class A(object):

def foo1(self):

print "Hello",self

@staticmethod

def foo2():

print "hello"

@classmethod

def foo3(cls):

print "hello",cls

a = A()

a.foo1() #最常見的調(diào)用方式,但與下面的方式相同

Hello __main__.A object at 0x9f6abec

A.foo1(a) #這里傳入實(shí)例a,相當(dāng)于普通方法的self

Hello __main__.A object at 0x9f6abec

A.foo2() #這里,由于靜態(tài)方法沒有參數(shù),故可以不傳東西

hello

A.foo3() #這里,由于是類方法,因此,它的第一個(gè)參數(shù)為類本身。

hello class '__main__.A'

A #可以看到,直接輸入A,與上面那種調(diào)用返回同樣的信息。

class '__main__.A'

python 類中的變量傳遞給類中的函數(shù)

為了把類中的變量傳遞給類中的函數(shù),我們需要用到3個(gè)特定格式

① 第一個(gè)格式 @classmethod 的中文意思就是“類方法”,@classmethod聲明了函數(shù)1是類方法,這樣才能允許函數(shù)1使用類屬性中的數(shù)據(jù)。

② 第二個(gè)格式 cls 的意思是class的縮寫。如果類方法函數(shù)1想使用類屬性(也就是類中的變量),就要寫上cls為函數(shù)1的第一個(gè)參數(shù),也就是把這個(gè)類作為參數(shù)傳給自己,這樣就能被允許使用類中的數(shù)據(jù)。

③ 第三個(gè)格式是 cls.變量 。類方法想使用類屬性的時(shí)候,需要在這些變量名稱前加上cls. 這就好比類方法和類之間的約法三章,所以但凡有任何格式錯(cuò)誤都會(huì)報(bào)錯(cuò)。

如果缺①,即缺了“@classmethod”,類方法就不能直接利用類中的屬性,于是報(bào)錯(cuò)


當(dāng)前標(biāo)題:python的cls函數(shù),cls是什么函數(shù)
轉(zhuǎn)載來源:http://weahome.cn/article/dsceiee.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部