- self代表類的實例,而非類
類的方法與普通的函數只有一個特別的區別——它們必須有一個額外的第一個參數名稱, 按照慣例它的名稱是 self。
class Test:
def prt(self):
print(self)
print(self.__class__)
t = Test()
t.prt()
程序輸出如下:
<__main__.Test object at 0x000001FBA7BB7400>
<class '__main__.Test'>
從執行結果可以很明顯的看出,self 代表的是類的實例,代表當前對象的地址,而 self.class 則指向類。
self 不是 python 關鍵字,我們把他換成 其他字符也是可以正常執行的:
- 類的私有屬性
__private_attrs:兩個下劃線開頭,聲明該屬性爲私有,不能在類的外部被使用或直接訪問。在類內部的方法中使用 self.__private_attrs可以訪問。
- 類的方法
在類的內部,使用 def 關鍵字來定義一個方法,與一般函數定義不同,類方法必須包含參數 self,且爲第一個參數,self 代表的是類的實例。
self 的名字並不是規定死的,也可以使用 this,但是最好還是按照約定是用 self。
- 類的私有方法
__private_method:兩個下劃線開頭,聲明該方法爲私有方法,只能在類的內部調用 ,不能在類的外部調用。self.__private_methods。