【发布时间】:2020-03-18 06:51:10
【问题描述】:
我正在尝试为 python3 类属性模拟类似指针的行为。 在下面的示例中,我想让 obj.b 指向 obj.a,这样如果 obj.a 的值在运行时发生变化,则 obj.b 的值将变为。
# not working as expected
class A:
def __init__(self, value):
self.a = value
self.b = getattr(self, 'a')
obj = A('banana')
# now changing my mind
obj.a = 'apple'
# I would like to have obj.b == 'apple', not 'banana'
我想我正在尝试做一个应该更好地避免的肮脏把戏,但对于我的具体任务来说它会很有帮助
【问题讨论】:
-
您可能只需要
b作为返回self.a的属性。但我无法真正理解您在这里实际想要做什么。 -
为什么不能使用
obj.a本身?用例是什么? -
简而言之,我正在合并几种具有不同变量名称定义的方法,尽管它们实际上是相同的东西。只有一个“驱动”变量会为所有不同的实例设置值,而不是重新编写所有方法,这将很有帮助。我不习惯装饰器,您如何将 b 分配为属性?