【问题标题】:How to get the reference of one variable of one class in another class in python?如何在python中获取另一个类中一个类的一个变量的引用?
【发布时间】:2016-10-12 06:16:37
【问题描述】:

我有一个类 C1 和另一个类 C2,它将 C1 的一个实例作为变量。如果我想在C2中获取C1的变量,我必须使用self.c1.variable。如何在C2中获取C1的变量的引用,以便直接获取?

class C1():
    def __init__(self,a):
        self.variable = a

class C2():
    def __init__(self, c1):
        self.c1 = c1

    def print_variable(self):
        print self.c1.variable


c1 = C1(1)
c2 = C2(c1)
c2.print_variable()

【问题讨论】:

  • 你能详细解释一下你到底想做什么吗?
  • @trahane 我只想使用更短的代码来获取 c1.variable。如果我有包含 C2 的第三类 C3,我必须通过 self.c2.c1.variable 访问 C3 中的 c1 变量。如果我想经常使用这个变量,这不是一个好方法。

标签: python class reference


【解决方案1】:

您可以使用 @property 装饰器来实现:

class C2():
    def __init__(self, c1):
        self.c1 = c1

    @property
    def variable(self):
        return self.c1.variable

如果您想在 C2 实例中修改 variable

    @variable.setter
    def variable(self, value):
        self.c1.variable = value

【讨论】:

  • 谢谢。这正是我想要的。
猜你喜欢
  • 1970-01-01
  • 2016-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-21
  • 1970-01-01
  • 2014-10-06
  • 1970-01-01
相关资源
最近更新 更多