国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

pythonself,cls,decorator的理解

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:39:22
文檔

pythonself,cls,decorator的理解

pythonself,cls,decorator的理解:1. self, cls 不是關(guān)鍵字 在python里面,self, cls 不是關(guān)鍵字,完全可以使用自己寫(xiě)的任意變量代替實(shí)現(xiàn)一樣的效果 代碼1 代碼如下:class MyTest: myname = 'peter' def sayhello(hello): print say hello to %s % h
推薦度:
導(dǎo)讀pythonself,cls,decorator的理解:1. self, cls 不是關(guān)鍵字 在python里面,self, cls 不是關(guān)鍵字,完全可以使用自己寫(xiě)的任意變量代替實(shí)現(xiàn)一樣的效果 代碼1 代碼如下:class MyTest: myname = 'peter' def sayhello(hello): print say hello to %s % h

1. self, cls 不是關(guān)鍵字
在python里面,self, cls 不是關(guān)鍵字,完全可以使用自己寫(xiě)的任意變量代替實(shí)現(xiàn)一樣的效果
代碼1

代碼如下:


class MyTest:
myname = 'peter'
def sayhello(hello):
print "say hello to %s" % hello.myname

if __name__ == "__main__":
MyTest().sayhello()


代碼1中, 用hello代替掉了self, 得到的是一樣的效果,也可以替換成java中常用的this.
結(jié)論 : self和cls只是python中約定的寫(xiě)法,本質(zhì)上只是一個(gè)函數(shù)參數(shù)而已,沒(méi)有特別含義。
任何對(duì)象調(diào)用方法都會(huì)把把自己作為該方法中的第一個(gè)參數(shù),傳遞到函數(shù)中。(因?yàn)樵趐ython中萬(wàn)物都是對(duì)象,所以當(dāng)我們使用Class.method()的時(shí)候,實(shí)際上的第一個(gè)參數(shù)是我們約定的cls)
2. 類的定義可以動(dòng)態(tài)修改
代碼2

代碼如下:


class MyTest:
myname = 'peter'
def sayhello(self):
print "say hello to %s" % self.myname

if __name__ == "__main__":
MyTest.myname = 'hone'
MyTest.sayhello = lambda self,name: "I want say hello to %s" % name
MyTest.saygoodbye = lambda self,name: "I do not want say goodbye to %s" % name
print MyTest().sayhello(MyTest.myname)
print MyTest().saygoodbye(MyTest.myname)


這里修改了MyTest類中的變量和函數(shù)定義, 實(shí)例化的instance有了不同的行為特征。
3. decorator
decorator是一個(gè)函數(shù), 接收一個(gè)函數(shù)作為參數(shù), 返回值是一個(gè)函數(shù)
代碼3

代碼如下:


def enhanced(meth):
def new(self, y):
print "I am enhanced"
return meth(self, y)
return new
class C:
def bar(self, x):
print "some method says:", x
bar = enhanced(bar)


上面是一個(gè)比較典型的應(yīng)用
以常用的@classmethod為例
正常的使用方法是
代碼4

代碼如下:


class C:
@classmethod
def foo(cls, y):
print "classmethod", cls, y


這里有個(gè)疑惑的地方,不是很明白: 如果一個(gè)方法沒(méi)有使用@classmethod, 那么用Class.method()的方式,是會(huì)報(bào)錯(cuò)的。但是@classmethod是個(gè)decorator, 那么它返回的也是一個(gè)函數(shù),為什么這樣就可以直接被Class調(diào)用了呢?

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

pythonself,cls,decorator的理解

pythonself,cls,decorator的理解:1. self, cls 不是關(guān)鍵字 在python里面,self, cls 不是關(guān)鍵字,完全可以使用自己寫(xiě)的任意變量代替實(shí)現(xiàn)一樣的效果 代碼1 代碼如下:class MyTest: myname = 'peter' def sayhello(hello): print say hello to %s % h
推薦度:
標(biāo)簽: python cls self
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 亚洲天堂一区二区三区 | 国产一级片在线 | 日韩成人在线观看 | 麻豆国产高清精品国在线 | 久久亚洲国产成人精品性色 | 亚洲第二页 | www.国产精品.com | 性欧美高清 | 国产精品高清一区二区三区不卡 | 亚洲 欧美 中文 日韩欧美 | 国产最新在线视频 | 久久亚洲精品国产亚洲老地址 | 精品视频一区二区三区四区五区 | 免费观看a毛片一区二区不卡 | 国产精品久久久久免费 | 在线观看亚洲欧美 | 国产播放器一区 | 欧美啪啪网 | 欧美在线中文 | 日韩中文字幕第一页 | 黑丝草逼 | 国产成人高清一区二区私人 | 综合欧美亚洲 | 亚洲 另类 在线 欧美 制服 | 欧美日韩国产精品 | 午夜精品久久久久久91 | 亚洲逼院 | 欧美高清一区 | 综合网天天 | 精品国产欧美一区二区三区成人 | 午夜看大片 | 色妞网| 与子乱刺激对白在线播放 | 精品国产一区二区三区成人 | 图片专区亚洲欧美另类 | 不卡一级aaa全黄毛片 | 精品视频一区二区三区四区 | 国产亚洲一区二区三区不卡 | 国产成人久久精品二区三区 | 亚洲国产精品成人久久 | 国产精品电影一区二区三区 |