天天看點

python之self

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

self名稱不是必須的,在python中self不是關鍵詞,你可以定義成a或b或其它名字都可以,但是約定成俗,不要搞另類,大家會不明白的。下例中将self改為myname一樣沒有錯誤:

python之self

  Person:
            _init_(myname,name):
                    myname.name=name
            sayhello(myname):
                     ,myname.name
 p=Person()
  p      
python之self

self指的是類執行個體對象本身(注意:不是類本身)。

python之self
  Person:
           _init_(self,name):
                   self.name=name
           sayhello(self):
                    ,self.name
 p=Person()
  p      
python之self

在上述例子中,

self

指向Person的執行個體p。 為什麼不是指向類本身呢,如下例子:

python之self
  Person:
           _init_(self,name):
                   self.name=name
           sayhello(self):
                    ,self.name
 p=Person()
 p1 = Person()
  p      
python之self