您好,登錄后才能下訂單哦!
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指的是類實例對象本身(注意:不是類本身)。
'''
遇到問題沒人解答?小編創建了一個Python學習交流QQ群:×××
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書!
'''
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總是指調用時的類的實例。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。