python學習手冊筆記 29 運算子過載

2021-09-25 13:29:14 字數 1642 閱讀 7783

00.常見的運算子過載方法

方法 過載 呼叫

__init__ 建構函式 物件建立:x = class(args)

__del__ 析構函式 x物件收回

__add__ 運算子+ 如果沒有__iadd_,x + y, x += y

__or__ 運算子|(位or) 如果沒有_ior_,x|y,x|=y

__repr__,__str__ 列印,轉換 print(x)、repr(x)、str(x)

__call__ 函式呼叫 x(*args, **kargs)

__getattr__ 點號運算 x.undefined

__setattr__ 屬性賦值語句 x.any = value

__delattr__ 屬性刪除 del x.any

__getattribute__ 屬性獲取 x.any

__getitem__ 索引運算 x[key],x[i:j],沒有__iter__時的for迴圈和其他迭代器

__setitem__ 索引賦值語句 x[key] = value, x[i:j] = sequence

__delitem__ 索引和分片刪除 del x[key], del x[i:j]

__len__ 長度 len(x),如果沒有__bool__,真值測試

__bool__ 布林測試 bool(x),真測試

__lt____gt____le____ge____eq____ne__ 特定的比較  

__radd__ 右側加法  

__iadd__ 實地加法  

__iter__,__next__ 迭代環境  

__contains__ 成員關係測試  

__index__ 整數值  

__enter__,__exit__ 環境管理器  

__exit__ 環境管理其  

__get__,__set__ 描述符屬性  

__delete__    

__new__ 建立 在__nint__之前建立物件

02.property內建函式允許我們把方法和特定類屬性上的獲取和設定操作關聯起來。

描述符提供了乙個協議,把乙個類的__get__和__set__方法域對特定類屬性的訪問關聯起來。

01.__getattr__:時攔截屬性點號運算。當通過未定義(不存在)屬性名臣和例項進行點號運算時,就會用屬性名臣作為字串呼叫這個方法。

__setatrr__:會攔截所有屬性的賦值語句

__getattribute__:方法攔截所有的屬性獲取,而不只是那些未定義的

__repr__:返回例項的字串表達形式的__repr__方法。

__str__

__radd__:+運算子右側使用例項物件

__iadd__:原處加法

__call__:如果定義了,python就會未例項應用函式呼叫表示式執行__call__方法。

__it__:

__gt__:

__bool__:獲取乙個直接的布林值,然後,如果沒有該方法,就嘗試__len__類根據物件的擦汗高難度確定乙個真值。

__len__:乙個非空物件看作是真

__del__:每當例項產生時,就會呼叫__init__建構函式。每當例項空間被收回時(在立即收集時),他的對立面__del__,也就是析構函式,就會自動執行。

python學習手冊學習筆記(一)

第三章 如何執行檔案 避免命令列執行時閃退 加input 到最後 匯入 import 從本質上講,就是載入另乙個檔案。把其中乙個模組檔案設計成主檔案。屬性 繫結在特定物件上的變數名 比如乙個模組 讀取模組檔案的變數名 import from reload。從模組檔案中獲得變數名 from myfil...

29 python學習筆記 裝飾器

裝飾器函式 用來對函式的擴充套件,補充。高階函式 巢狀函式 裝飾器 原則 1 不能修改被裝飾的函式的源 2 不能修改被裝飾的函式的呼叫方式 實現裝飾器的知識儲備 1 函式即 變數 def test 函式體test 函式體 2 高階函式 兩個條件 1 把乙個函式名當作實參傳給另外乙個函式 在不修改被裝...

《python學習手冊》閱讀筆記5 1 5 14

不知不覺這麼久沒寫了,兩周時間,看完了字串,列表與字典,元組與檔案,整個第二部分啃完了,第三部分是語句,再往後好像就是平時寫的時候沒接觸過的比較深的東西了,到時候應該會寫詳細點。print usage thingy options h display this usage message h hos...