0

我正在尝试使用一个类来保存状态而不是全局变量。例如,对象 inner 想要引用变量 Outer.x(参见下面的示例)

我这样做是因为我有一个需要他们自己的类输入的库(ros_smach

class Outer:
  def __init__(self):
    self.x = 5

  class Inner:
    def __init__(self):
      self.y = 10

    def x(self):
      return Outer.x    ### this is not proper ###


outer = Outer()
inner = outer.Inner()
print outer.x
print inner.y
print inner.x()

多谢你们

4

1 回答 1

0

我真的不理解(因此也不赞成)使用“外部”类来保持状态——你用一种形式的全局替换另一种形式,这很少是一个好主意。但是,要回答您的问题,您的内部类没有引用外部实例。

class Outer:
  def __init__(self):
    self.x = 5
    self.inner = Inner(self)

  class Inner:
    def __init__(self, outer):
      self.outer = outer
      self.y = 10

    def x(self):
      return self.outer.x

o = Outer()
print o.x()
print o.inner.y
于 2013-01-28T22:38:19.270 回答