Python可以繼承多個父類,多重繼承。
類支持多個對象的產生,命名空間的繼承,運算符重載
1)、類產生多個實例對象
Python OOP模型中的兩種對象:類對象和實例對象。
類對象提供默認的行為,是實例對象的工廠。實例對象是程序處理的實際對象:各自都有獨立的命名空間。類對象來至于語句,而實例來至于調用。每次調用一個類,就會得到這個類的新實例。
a、類對象提供默認行為
b、實例對象是具體的元素
2)、類通過繼承進行定制
a、類通過繼承進行定制
b、類是模塊內部的屬性
3)、類可以截獲Python運算符
常見的運算符重載方法
方法??????? 重載??????? 調用
__init__??? 構造器方法??? 對象建立:X=Class()
__del__??????? 析構方法??? 對象收回
__add__??????? 運算符+??????? X+Y,X+=Y
__sub__??????? 運算符-??????? X-Y,X-=Y
__or__??????? 運算符|(位OR)??? X|Y X|=Y
__repr__,__str__ 打印,轉換??? print X【__str__】、repr(X)、str(X)
__call__??? 函數調用??? X()
__getattr__??? 點號運算??? X.undefined
__setattr__??? 屬性賦值語句??? X.any=Value
__getitem__??? 索引運算??? X[key],沒有__iter__時的for循環和其他迭代器
__setitem__??? 索引賦值語句??? X[key]=value
__len__??????? 長度??????????? len(X),真值測試
__cmp__??????? 比較??????????? X==Y,X
__lt__??????? 特定的比較??????? X
__eq__??????? 特定的比較??????? X==Y(or else __cmp__)
__radd__??? 左側加法 +??????? Noninstance + X
__iadd__??? 實地(增強的)的加法??? X+=Y(or else __add__)
__iter__??? 迭代環境??????? 用于循環,測試,列表,映射及其他
所有重載方法的名稱前后都有兩個下劃線字符,以便把同類中定義的變量名區別開來。特殊方法名稱和表達式或運算的映射關系,是由Python語言預先定義好的。