python预定义_【Python】python类中方法的预定义
知乎問題:
像這個(gè)圖片里面顯示的,self.prediction首先聲明了下然后下面給出了定義,然后optimize又調(diào)用這個(gè)函數(shù)但是沒有用self.prediction()這樣的方式而是像用變量一樣直接用self.prediction,,像請(qǐng)教一下這是什么操作?
知乎回答:
python中變量和函數(shù)都不需要提前聲明,函數(shù)直接定義就可以了。這里提前聲明不知道是寫的人習(xí)慣了其它語言,還是為了可讀性。
在python中一切皆對(duì)象,函數(shù)也不例外。因此可以將函數(shù)綁定到變量上或者傳遞,使用時(shí)后面加上()就可以調(diào)用。
在下面的方法中self.prediction后面沒有加(),但是又把它和一個(gè)浮點(diǎn)數(shù)相加,說明此時(shí)它的值是一個(gè)數(shù)字。如果是平常的寫法,函數(shù)對(duì)象不可能與數(shù)字相加。
我推測(cè)關(guān)鍵處在prediction定義時(shí)的裝飾器,它可能有類似于property裝飾器的作用,將self.prediction轉(zhuǎn)化成了一個(gè)屬性,這樣不需要加()也可以返回值了。
答者補(bǔ)充:
因?yàn)镻ython語言的動(dòng)態(tài)性,在寫代碼時(shí),代碼檢查工具可能認(rèn)為self沒有這樣的屬性,這時(shí)你預(yù)先聲明了,它就不會(huì)報(bào)錯(cuò)。
作者:松直
python修飾器
要理解python的裝飾器,我們首先必須明白在Python中函數(shù)也是被視為對(duì)象。函數(shù)既然作為一個(gè)對(duì)象,因此:
1. 其可以被賦給其他變量
2. 其可以被定義在另外一個(gè)函數(shù)內(nèi)
3. 作為參數(shù)傳遞給函數(shù)
其實(shí)它可被視為封裝器。也就是說,它能夠讓你在裝飾前后執(zhí)行代碼而無須改變函數(shù)本身內(nèi)容。
總結(jié)
以上是生活随笔為你收集整理的python预定义_【Python】python类中方法的预定义的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python whl_python wh
- 下一篇: python find不区分大小写_牛鹭