# coding:utf-8
# 1, __str__ 函数:如果定义了该函数,当我们打印当前实例化对象后,就会返回该函数的return信息,通常返回一个字符串信息作为这个类的介绍信息
class Test01(object):
def __str__(self):
return "这是测试01类"
t1 = Test01()
print(t1)
# __getattr__ : 当调用的属性或方法不存在时,会返回该方法或函数的定义信息
class Test02(object):
def __getattr__(self, item):
print(f'调用的{item}不存在')
t2 = Test02()
t2.getName
# __setattr__ : 拦截当前类中不存在的属性和值,对他们进行一些业务处理
class Test03(object):
def __setattr__(self, key, value):
print(key, value, self.__dict__)
# self.__dict__ 是一个空字典,每个类都有
if key not in self.__dict__:
self.__dict__[key] = value
t3 = Test03()
t3.name = "立邦" # name 属性在类中不存在,所以会执行类中的 __setattr__
print(t3.name)
# __call__ : 本质上是将一个实例化后的类变成一个函数;
class Test04(object):
def __call__(self, *args, **kwargs):
print(args, kwargs)
t4 = Test04()
t4(123,345, name="刘邦")
|