如果是绑定一个对象,这是否能简单快速地满足您的需求。
object.__setattr__
尝试属性分配时调用。它被调用,而不是正常的机制(即将值存储在实例字典中)。name是属性名,value是要分配给它的值。
class foo:
name: str = ""
last_name: str = ""
class other:
def __init__(self, obj):
self.__dict__["obj"] = obj
def __setattr__(self, key, value):
if not hasattr(self, key) and hasattr(self.__dict__["obj"], key):
setattr(self.__dict__["obj"], key, value)
else:
super().__setattr__(key, value)
f = foo()
o = other(f)
print("1. ", f.name, f.last_name)
o.name = "Jon"
print("2. ", f.name, f.last_name)
"""
1.
2. Jon
"""