python類中的self是什么?
對象的方法都會有一個self參數,類比于c++,self就相當于c++的this指針。
由一個類可以生成無數個對象,當一個對象的方法被調用時,對象會講自身的引用作為第一個參數傳給該方法,那么python就知道需要操作哪個對象的方法了。
例子:
class Ball:def setName(self,name):self.name=namedef kick(self):print("我叫%s,噢~誰踢我?"%self.name)
實例化:
a=Ball()
a.setName('流星')
b=Ball()
b.setName('地球')
c=Ball()
c.setName('火星')a.kick()
b.kick()
c.kick()
輸出:
我叫流星,噢~誰踢我?
我叫地球,噢~誰踢我?
我叫火星,噢~誰踢我?
python的__init__()魔法方法
據說,python的對象天生擁有一些 神奇的方法,他們是面向對象的python的一切,他們是可以給類增加魔力的特殊方法,如果對象實現了這些方法中的某一個,那么這個方法就會在特殊的情況下被python調用,而這一切是自動發生的。
python的這些具有魔力的方法,總是被左右兩個下劃線包圍,這里就講其中一個基本的特殊方法,init()。
通常把__init__()方法稱為構造方法,init()方法的魔力體現在只要實例化一個對象,這個方法就會在對象被創建時自動調用,其實,實例化對象時是可以傳入參數的,這些參數會自動傳入__init__()方法中,可以通過重寫這個方法來自定義對象的初始化操作。
例子::
class Potato:def __init__(self,name):self.name=namedef kick(self):print("我叫%s,噢~誰踢我?"%self.name)
實例化:
p=Potato('流星')
p.kick()
輸出:
我叫流星,噢~誰踢我?