創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),滿洲企業(yè)網(wǎng)站建設(shè),滿洲品牌網(wǎng)站建設(shè),網(wǎng)站定制,滿洲網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,滿洲網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)python的類的方法怎么有個(gè)self,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Python要用self的理由
Python的類的方法和普通的函數(shù)有一個(gè)很明顯的區(qū)別,在類的方法必須有個(gè)額外的第一個(gè)參數(shù) (self ),但在調(diào)用這個(gè)方法的時(shí)候不必為這個(gè)參數(shù)賦值。Python類的方法的這個(gè)特別的參數(shù)指代的是對象本身,而按照Python的慣例,它用self來表示。(當(dāng)然我們也可以用其他任何名稱來代替,只是規(guī)范和標(biāo)準(zhǔn)建議我們一致使用self)
為何Python給self賦值而你不必給self賦值?
例子說明:創(chuàng)建了一個(gè)類MyClass,實(shí)例化MyClass得到了MyObject這個(gè)對象,然后調(diào)用這個(gè)對象的方法MyObject.method(arg1,
arg2) ,這個(gè)過程中,Python會(huì)自動(dòng)轉(zhuǎn)為Myclass.mehod(MyObject,arg1,arg2)
這就是Python的self的原理了。即使你的類的方法不需要任何參數(shù),但還是得給這個(gè)方法定義一個(gè)self參數(shù),雖然我們在實(shí)例化調(diào)用的時(shí)候不用理會(huì)這個(gè)參數(shù)不用給它賦值。
實(shí)例:
代碼如下:
class Python: def selfDemo(self): print 'Python,why self?' p = Python() p.selfDemo()
輸出:
Python,why self?
把p.selfDemo()帶個(gè)參數(shù)如:p.selfDemo(p),得到同樣的輸出結(jié)果
如果把self去掉的話,代碼如下:
class Python: def selfDemo(): print 'Python,why self?' p = Python() p.selfDemo()
這樣就報(bào)錯(cuò)了:TypeError: selfDemo() takes no arguments (1 given)
擴(kuò)展
self在Python里不是關(guān)鍵字。self代表當(dāng)前對象的地址。self能避免非限定調(diào)用造成的全局變量。
在Python3之后不知道將self隱了沒?感覺在Python類里的方法都要帶個(gè)self這樣有點(diǎn)死板。
上述就是小編為大家分享的python的類的方法怎么有個(gè)self了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。