內置方法:Python中聲明每一個類系統都會加上一些默認內置方法,提供給系統調用該類的對象時使用。比如需要實例化一個對象時,需要調用該類的init方法;使用print去打印一個類時,其實調用的是str方法等等。
- init(self, …):初始化對象class,在創建新對象時調用。在方法里,可以初始化該對象的屬性,否則調用其他時可能出“現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:文件注釋