目录
魔术方法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
)
"""__bool__(self)"""
class B:
def __bool__(self
):
print('判断对象的bool值时执行的方法,返回值只能是bool类型')
return False
b
= B
()
print(bool(b
))
"""__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
c
.name
= 'suzhou'
print(c
.name
)
del c
.name
1、基本的魔术方法
2、有关属性
3、比较操作符
4、算术运算符
5、反运算
6、增量赋值运算
7、一元操作符
8、类型转换
9、上下文管理(with 语句)
10、容器类型