python常用魔法方法

2019-11-09  本文已影响0人  上山走18398

每个魔法方法都有特定的目的;当特定语法出现时,它作为执行的钩子函数(回调函数就是钩子函数的一种)

__new__ : 创建类实例
__init__:  初始化
__del__:  被销毁时调用

类型转换
__str__  -> str()
__unicode__
__bytes__
__bool__ ->bool()
__int__
__float__
__complex__

比较
__eq__  -> ==
__ne__
__cmp__

__future__
__invert__

__len__ -> len()
__repr__ ->对象的repr方法用于确定该对象在python交互式终端中显示方式

__hash__

__format__ -> format()

__instancecheck__
__subclasscheck__

集合
__contains__ -> in
__getitem__
__setitem__
__delitem__
__doc__

__getattr__ -> obj.attr_name / getattr(obj,'attr_name') #常规方式无法找到属性时才调用
__setattr__ -> 复制给一个对象时调用

__getattribute__ -> 无法找到属性时调用

其他
__iter__ -> iter()
__next__ -> next()

__slot__
Python允许在定义class的时候,定义一个特殊变量__slots__来限制该class能添加的属性。

    __slots__只对类对象进行限制,不对类进行限制
    __slots__不仅限制类对象的属性,还限制类对象的方法
    __slots__仅对当前类起作用,对继承的子类不起作用
    在子类中定义__slots__,子类允许定义的属性就是自身的__slots__加上父类的__slots__



__enter__
__exit__
上一篇下一篇

猜你喜欢

热点阅读