靜態方法
定義方法:
(1)@staticmethod裝飾 (2)引數不用self
訪問特性:
(1)不能引用或訪問例項屬性 (2) 可以通過類、類變數訪問類屬性
呼叫方法:
可以用類、類例項呼叫
本質:在類中的乙個普通函式而已 使物件導向程式中函式歸屬於類,易於**管理
用法:(1)與類相關,但不依賴或改變類與例項 建立不同的例項 (2)把類相關工具方法放入類中
類方法
定義方法:
(1) @classmethod (2)必須提供引數cls
訪問特性:
不能引用或訪問例項屬性
呼叫方法:可以用類、例項呼叫
繼承特性: 繼承時,傳入的類變數cls是子類,而非父類
用途:(1)與類相關,但不依賴或改變類的例項 工廠方法,創類例項完成有關預處理
(2)在類內呼叫靜態方法時不用硬編碼類名
例項屬性
類屬性
類定義後就存在,而且不需要例項化
類屬性使得相同類的不同例項共同持有相同變數
私有屬性
不提供限制屬性訪問的關鍵字(無法限制類的各種屬性在類外直接訪問)
使用__開頭的變數名加以標誌,只有類物件自己能訪問
使用_開頭的變數名加以標誌,應該只有類物件及其子類能訪問(非強制性)
特殊屬性
儲存物件的元資料
__doc__
__name__
__dict__
__module__
__base__
屬性訪問的特殊方法(反射)
主要工具函式
hasattr(obj_name,'屬性名')
setattr(obj_name,'屬性名','值')
getattr(obj_name,'屬性名')
屬性包裝
三種屬性操作
(1)可讀@property
(2)可寫@.setter
(3)可刪@.delete
描述符
將實現特殊協議方法的類作為另乙個類的類屬性
用來攔截和控制屬性訪問並可以重複使用
協議方法
__get__()
__set__()
__delete__()
資料描述符(實現全部協議方法)
非資料描述符(實現部分協議方法)
說明:所有類成員函式都是非資料描述符注意:只能在新式類中使用
__call__()讓類的實例如函式一樣可呼叫
類
類也是乙個物件,但是具有建立其自身例項的能力
類可以和乙個變數進行繫結
可以為類增加屬性
可以把它作為函式的引數傳遞
元類
類的建立和管理者
所有的類是元類的例項
類例項化過程
自定義元類
目的:對其建立的類進行預處理
繼承type
定義__new__()方法
還可以定義__init__()方法
應用元類
類繼承中提供關鍵字引數:metaclass=元類名
構造序列
__len__(self)
__getitem__(self,key)
__setitem__(self,key,value)
__delitem__(self,key)
構造iter
__iter__(self)
__next__(self)
構造可比較類
__lt__()
__le__()
__gt__()
__ge__()
__eq__()
__ne__()
構造可運算類
__add__()
__sub__()
__mul__()
__div__()
python教學筆記 python學習筆記(一)
1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...
python學習筆記
coding utf 8 coding utf 8 應該像八股文一樣在每個指令碼的頭部宣告,這是個忠告 為了解決中文相容問題,同時你應該選擇支援 unicode 編碼的編輯器環境,保證在執行指令碼中的每個漢字都是使用 utf 8 編碼過的。cdays 5 exercise 3.py 求0 100之間...
Python 學習筆記
python 學習筆記 def run print running.def execute method method execute run result running.condition false test yes,is true if condition else no,is false ...