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 __
完结
下一篇 深入类和对象