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 __
完結
下一篇 深入類和對象