1. 程式人生 > >學習整理——Python中內建方法

學習整理——Python中內建方法

內建方法

類似Java,Python中宣告每一個類系統都會加上一些預設內建方法,提供給系統呼叫該類的物件時使用。比如需要例項化一個物件時,需要呼叫該類的__init__方法;使用print去列印一個類時,其實呼叫的是__str__方法;等等。

__init__(self, ...):初始化物件,在建立新物件時呼叫。在方法裡,可以初始化該物件的屬性,否則呼叫其他時可能出“現has no attribute"錯誤;

__del__(self):釋放物件,在物件被虛擬機器刪除之前呼叫;

__new__(cls,*args,**kwd):例項的生成操作,相比__init__在物件例項化呼叫做初始化,__new__方法執行在例項化階段,修改某些例項化過程;

__str__(self):在使用print語句時被呼叫,將物件的屬性值拼接成字串返回;

__getitem__(self, key):獲取序列的索引key對應的值,需要使用[]操作符的類需要覆蓋的,等價於seq[key];

 __setitem__(self, key, value):類似__geitem__,需要seq[key]=value操作的類需要實現該方法;

__len__(self):在呼叫行內函數len()時被呼叫;

__getattr__(s, name): 獲取屬性的值;

 __setattr__(s, name, value):設定屬性的值;

__delattr__(s, name)

: 刪除name屬性;

__getattribute__():__getattribute__()功能與__getattr__()類似,無條件被呼叫,通過例項訪問屬性。如果class中定義了__getattr__(),則__getattr__()不會被呼叫(除非顯示呼叫或引發AttributeError異常);

 __gt__(self, other):判斷self物件是否大於other物件;

__lt__(self, other):判斷self物件是否小於other物件;

 __ge__(slef, other):判斷self物件是否大於或者等於other物件;

__le__(self, other)

: 判斷self物件是否小於或者等於other物件;

__eq__(self, other):判斷self物件是否等於other物件;

__call__(self, *args): 把例項物件作為函式呼叫,在一個物件後面加上(),虛擬機器就會呼叫該__call__方法。

內建變數

__name__:標識模組的名字的一個系統變數。假如當前模組是主模組(也就是呼叫其他模組的模組),那麼此模組名字就是"__main__",通過if判斷這樣就可以執行“__main__”後面的主函式內容;假如此模組是被import的,則此模組名字為檔名字(不加後面的.py),通過if判斷這樣就會跳過“__main__”後面的內容;

__file__:用來獲得模組所在的路徑的,這可能得到的是一個相對路徑;

__package__:當前檔案為None,匯入其他檔案,指定檔案所在包用 . 分割;

__doc__:檔案註釋。