淺談Python類中的self到底是幹啥的
阿新 • • 發佈:2020-01-09
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,self.name p1=Person('Bill') p2 = Person('Apple') print p1
如果self指向類本身,那麼當有多個例項物件時,self指向哪一個呢?
總結
self在定義時需要定義,但是在呼叫時會自動傳入。
self的名字並不是規定死的,但是最好還是按照約定是用self
self總是指呼叫時的類的例項。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。