King丨小义 发表于 2022-7-15 12:24:07

双向绑定机制

本帖最后由 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
页: [1]
查看完整版本: 双向绑定机制