|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 King丨小义 于 2022-12-23 11:03 编辑
其实本质上就是想办法把number变成self.number
让代码看起来更加舒适
- number = 18
- class Person():
- def __init__(self):
- # self.age='xxx' # 注意这地方不能再赋值,否则会调用__setattr__方法
- pass
-
- def __getattr__(self, key):
- if key == 'age':
- self.age = number
- return number
-
- def __setattr__(self, key, value):
- if key == 'age':
- global number
- number = value
- p = Person()
- print(p.age) # 18
- # --修改p.age, 则number会跟着更改
- p.age = 19
- print(p.age) # 19
- print(number) # 19
- # --修改number, 则p.age会跟着更改
- number = 20
- print(p.age) # 20
- print(number) # 20
复制代码 |
|