马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 huyanmin 于 2021-6-17 18:42 编辑
#编写一个 Counter 类,用于实时检测对象有多少个属性?class Counter:
k = []
def __init__(self):
self.counter = 0
def __setattr__(self, name, value): #下面有演示,为什么设置一次属性,__setattr__()方法,执行了两次
print('我是setattr')
if name != 'counter':
if name not in self.k:
self.counter += 1
self.k.append(name)
super().__setattr__(name, value)
def __delattr__(self, name):
self.counter -= 1
self.k.remove(name)
super().__delattr__(name)
'''
>>> c =Counter
>>> c=Counter()
我是setattr
>>> c.y=88 #为什么设置一次属性,__setattr__()方法,执行了两次
我是setattr
我是setattr
''' |