【问题标题】:sync one instance to another instance of different class in python [closed]在python中将一个实例同步到不同类的另一个实例[关闭]
【发布时间】:2020-04-24 10:41:40
【问题描述】:

我有两门课

class A():
    def __init__(self):
        self.a = 1

class B():
    def __init__(self):
        self.b = 2
        self.A = A()
        self.A.a = self.b

并且一个类包含另一个作为实例(也许继承会更好?)。 我希望该 A 实例的某些属性(例如 a)与包含 B 实例的某些属性(例如 b)同步。所以在这个例子中

B_instance = B()
print(B_instance.A.a)
B_instance.b=3
print(B_instance.A.a)

第一个打印语句给出 2,第二个我想给出 3。但它给出了 2,尽管 python 通过引用名称传递。

【问题讨论】:

  • B.b 可以是带有使用A.a 的setter 的property
  • 感谢@mkrieger1。你是什​​么意思。也许是一行代码?像 self.b=self.A.a?不,你不是那个意思
  • 你有什么问题?

标签: python object instance


【解决方案1】:

使用property 的示例。试试这个:

class A():
    def __init__(self):
        self.a = 1

class B():
    def __init__(self):
        self.A = A()
        self.b = 2

    def set_b(self, value):
        self._b = value
        self.A.a = self._b
    def get_b(self):
        return self._b
    b = property(get_b, set_b)

B_instance = B()
print(B_instance.A.a)
B_instance.b = 3
print(B_instance.A.a)

输出:

2
3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 2013-09-12
    • 2011-04-06
    相关资源
    最近更新 更多