我正在尝试使用类来保存状态而不是全局变量。作为示例,对象内部想要引用变量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()
谢谢你们
答案 0 :(得分: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