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