魔法函数

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 __
在这里插入图片描述

完结

下一篇 深入类和对象

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