|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
''' |
|