魔法函數

1.魔法函數

以雙下劃線開頭雙下劃線結尾。有python提供的。
可以寫到任何自定義的類中,不需用去手動調用,Python解釋器內部會自己調用魔法函數。

舉個例子:
在這裏插入圖片描述

2.python的數據模型以及數據模型對python的影響

實際上魔法函數是python本身數據模型的一個概念,如當我們在類中實現 __ getitem __()的時候,可以實現對類的實例化對象的直接遍歷。所以魔法函數實際上會影響Python語法的,或者說python語法會識別魔法函數,這個魔法函數的調用實際上是一次的,並不需要我們去顯示的調用它,所以我自定義一個類,在類中實現了一個魔法函數,第一魔法函數既不屬於這個自定義類,也不是繼承了object,而可以看做一個獨立的存在,或者說它加入到自定義類中,會增強這個類的類型。

3.Python魔法函數一覽

1.非數學運算

1.字符串表示 :
               1. __ repr __
               2. __ str __
2.集合序列相關:
               1. __ len __
               2. __ getitem __
               3. __ setitem __
               4. __ delitem __ 
               5. __ contains __
3.迭代相關:
               1. __ iter __
               2. __ next __
4.可調用:
                __ call __
5.with上下文管理器:
               1. __enter __
               2. __ exit __
6.數值轉換:
               1. __ abs __
               2. __ bool __
               3. __ int __
               4. __ float __
               5. __ hash __
               6. __ index __

7.元類相關:
               1. __ new __
               2. __ init __
8.屬性相關:
               1. __ getattr __ 、__ setattr __
               2. __ getattribute __ 、__ setattribute __
               3. __ dir __
9.屬性描述符:
               1. __ get __
               2. __ set __
               3. __ delete __
10.協程:
               1. __ await __
               2. __ aiter __
               3. __ anext __
               4. __ aenter __
               5. __ aexit __

2.數學運算

1.一元運算符:
               1. __ neg __ (-)
               2. __ pos __ (+)
               3. __ abs __
2.二元運算符:
               1. __ lt __ (e)
               2. __ le __ (<=)
               3. __ eq __ (==)
               4. __ ne __ (!=)
               5. __ gt __ (>)
               6. __ ge __ (>=)
3.算數運算符:
               1. __ add __ (+)
               2. __ sub __ (-)
               3. __ mul __ (*)
               4. __ truediv __ (/)
               5. __ floordiv __ (//)
               6. __ mod __ (%)
               7. __ divmod __ 或者 divmod()
               8. __ pow __ 或者pow() (**)
               9. __ round __ 或者 round()
4.反向算數運算符:
               1. __ radd __
               2. __ rsub __
               3. __ rmul __
               4. __ rtruediv __
               5. __ rfloordiv __
               6. __ rmod __
               7. __ rdivmod __
               8. __ rpow __
5.增量賦值運算符:
               1. __ iadd __
               2. __ isub __
               3. __ imul __
               4. __ itruediv __
               5. __ ifloordiv __
               6. __ imod __
               7. __ ipow __
6.位運算符:
               1. __ invert __ (~)
               2. __ lshift __ (<<)
               3. __ rshift __ (>>)
               4. __ and __ (&)
               5. __ or __ (|)
               6. __ xor __ (^)
7.反向位運算符:
               1. __ rlshift __
               2. __ rrshift __
               3. __ rand __
               4. __ rxor __
               5. __ ror __
8.增量賦值位運算符:
               1. __ ilshift __
               2. __ irshift __
               3. __ iand __
               4. __ ixor __
               5. __ ior __


4.例子

__ str __ 的使用
在這裏插入圖片描述
__ repr __ 的使用
在這裏插入圖片描述
__ abs __
在這裏插入圖片描述
__ add __
在這裏插入圖片描述

完結

下一篇 深入類和對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章