首先明确的是self隻有在類的方法中才會有,獨立的函數或方法是不必帶有self的。self在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數。
self名稱不是必須的,在python中self不是關鍵詞,你可以定義成a或b或其它名字都可以,但是約定成俗,不要搞另類,大家會不明白的。下例中将self改為myname一樣沒有錯誤:

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

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

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

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

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