Python之魔术方法Magic

    xiaoxiao2022-07-07  166

    目录

    魔术方法Magic_method1、基本的魔术方法2、有关属性3、比较操作符4、算术运算符5、反运算6、增量赋值运算7、一元操作符8、类型转换9、上下文管理(with 语句)10、容器类型

    魔术方法Magic_method

    (1)与普通方法的区别:不用手动调用,在该类对象被执行时自动调用(自动触发),被双下划线“__”所包围。注意:魔法方法必须要使用return进行返回。如果在需要返回对象的魔术方法里面不知道如何返回,可以调用super函数来执行父类的相同方法。(2)参考文章: 参考1参考2参考3参考4 (3)常用魔术方法: """__repr__(self)""" class A: def __repr__(self): print('直接执行对象时执行的方法') return '__repr__' a = A() print(a) # 直接执行对象时执行的方法 # __repr__ """__bool__(self)""" class B: def __bool__(self): print('判断对象的bool值时执行的方法,返回值只能是bool类型') return False b = B() print(bool(b)) # 判断对象的bool值时执行的方法,返回值只能是bool类型 # False """__getattr__(self,name); __setattr__(self,name,value); __delattr__(self,name); __getattribute__(self,name)""" class C: def __getattr__(self, name): print('__getattr__(self,name):获取一个不存在的属性时执行的方法。') def __setattr__(self, name, value): print('__setattr__(self,name,value):设置一个属性时执行的方法。') super().__setattr__(name, value) def __delattr__(self, name): print('__delattr__(self,name):删除一个属性时执行的方法') return super().__delattr__(name) def __getattribute__(self, name): print('__getattribute__(self,name):当该类的属性被访问时执行的方法。') return super().__getattribute__(name) c = C() c.name # __getattribute__(self,name):当该类的属性被访问时执行的方法。 # __getattr__(self,name):获取一个不存在的属性时执行的方法。 c.name = 'suzhou' # __setattr__(self,name,value):设置一个属性时执行的方法。 print(c.name) # __getattribute__(self,name):当该类的属性被访问时执行的方法。 # suzhou del c.name # __delattr__(self,name):删除一个属性时执行的方法
    1、基本的魔术方法

    2、有关属性

    3、比较操作符

    4、算术运算符

    5、反运算

    6、增量赋值运算

    7、一元操作符

    8、类型转换

    9、上下文管理(with 语句)

    10、容器类型

    最新回复(0)