python中類的函數中的self


Python類中的self到底是干啥的

Python編寫類的時候,每個函數參數第一個參數都是self,一開始我不管它到底是干嘛的,只知道必須要寫上。后來對Python漸漸熟悉了一點,再回頭看self的概念,似乎有點弄明白了。

首先明確的是self只有在類的方法中才會有,獨立的函數或方法是不必帶有self的。self在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數。

self名稱不是必須的,在python中self不是關鍵詞,你可以定義成a或b或其它名字都可以,但是約定成俗(為了和其他編程語言統一,減少理解難度),不要搞另類,大家會不明白的。

下例中將self改為myname一樣沒有錯誤:

class Person: def _init_(myname,name): myname.name=name def sayhello(myname): print 'My name is:',myname.name p=Person('Bill') print p

self指的是類實例對象本身(注意:不是類本身)。

class Person: def _init_(self,name): self.name=name def sayhello(self): print 'My name is:',self.name p=Person('Bill') print p

在上述例子中,self指向Person的實例p。 為什么不是指向類本身呢,如下例子:

class Person: def _init_(self,name): self.name=name def sayhello(self): print 'My name is:',self.name p1=Person('Bill') p2 = Person('Apple') print p1

如果self指向類本身,那么當有多個實例對象時,self指向哪一個呢?

總結

self在定義時需要定義,但是在調用時會自動傳入。

self的名字並不是規定死的,但是最好還是按照約定是用self

self總是指調用時的類的實例。

來源:https://www.cnblogs.com/chownjy/p/8663024.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM