Python 運算子多載 [轉載]

來源:互聯網
上載者:User

標籤:**kwargs   ddc   get   editable   重載   write   nta   分享圖片   oct   

建構函式與運算式: __init__, __sub__常見運算子多載方法
method overload call
__init__ 建構函式 對象建立: X = Class(args)
__del__ 解構函式 X對象收回
__add__ 雲演算法+ 如果沒有_iadd_, X+Y, X+=Y
__or__ 運算子| 如果沒有_ior_,X|Y, X|=Y
_repr__, __str__ 列印,轉換 print(X),repr(X),str(X)
__call__ 函數調用 X(*args, **kwargs)
__getattr__ 點號運算 X.undefined
__setattr__ 屬性指派陳述式 X.any=value
__delattr__ 屬性刪除 del X.any
__getattribute__ 屬性擷取 X.any
__getitem__ 索引運算 X[key],X[i:j]
__setitem__ 索引指派陳述式 X[key],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__
特定的比較 X<Y,X>Y,X<=Y,X>=Y,
X==Y,X!=Y
注釋:(lt: less than, gt: greater than,
  le: less equal, ge: greater equal,
  eq: equal, ne: not equal
__radd__ 右側加法 other+X
__iadd__ 實地(增強)加法 X+=Y(or else __add__)
__iter__, __next__ 迭代環境 I=iter(X), next()
__contains__ 成員關係測試 item in X(任何可迭代)
__index__ 整數值 hex(X), bin(X),  oct(X)
__enter__, __exit__ 環境管理器 with obj as var:
__get__, __set__,
__delete__
描述符屬性 X.attr, X.attr=value, del X.attr
__new__ 建立 在__init__之前建立對象
索引和分區: __getitem__, __setitem__

如果在類中定義的話,則對於執行個體的索引運算,會自動調用__getitem__。當執行個體X出現X[i]這樣的索引運算時,Python會自動調用__getitem__方法

攔截分區索引迭代: __getitem__迭代器對象: __iter__,  __next__

儘管上一節__getitem__是有效,但它是迭代退而求其次的方法。Python所有的迭代環境會有優先嘗試__iter__的方法,再嘗試__getitem__。

從技術角度上講,迭代環境是通過iter去嘗試尋找__iter__方法來實現,而這種方法返回一個迭代器對象。如果已經提供了,python會重複調用迭代器對象的next()方法,直到發生StopIteration異常。如果沒有找到__iter__,python會使用__getitem__機制。

__getattr__和__setattr__捕捉屬性的的引用

__getattr__攔截屬性.運算子

__repr__和__str__會返回字串表達形式__radd__處理右側加法__call__攔截調用

當執行個體調用時,使用__call__方法

__del__是析構器

當執行個體建立時,就會調用__init__構造方法。當執行個體空間被收回時,解構函式__del__就會自動執行。

Python 運算子多載 [轉載]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.