#python中通过实现这些特殊方法从而实现一些‘特定的功能’,这些方法不是给用户用的,
#python解释器再给类初始化时会同时初始化这些方法
class Parent:
pass
class Test:
__slots__ = [] #属性控制列表
def __init__(self, **kwargs):
for k, v in kwargs.items():
setattr(self, k, v)
#删除一个属性被调用
def __delattr__(self, item):
print(item)
#增加一个属性被调用
def __setattr__(self, key, value):
print(key, value)
#支持类索引器
def __setitem__(self, key, value):
pass
def __delitem__(self, key):
pass
#可以通过类实例调用自定义方法
def __call__(self, *args, **kwargs):
pass
#可以通过类实例输出自定义文本信息,用于调试输出
def __str__(self):
pass
#跟__str__ 的区别是用户内部数据传递
def __repr__(self):
pass
#类初始化最开始被调用的地方,可以用与单一模式等
def __new__(cls, *args, **kwargs):
pass
# 支持iter
def __iter__(self):pass
# 支持itor
def __next__(self):pass
#重写 ==
def __eq__(self, other):pass
t = Test(name='zhangsan', heigth=180)