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 に答える