class ClassA:
def __init__(self):
def val1(self):
a = 1
b = 2
return b
class ClassB (ClassA):
def val2(self):
print(b) # b has been defined in ClassA var1 method
答案 0 :(得分:1)
以下答案基于您的缩进错误并且val1
是ClassA
的一种方法,而不是ClassA.__init__
中的嵌套函数的假设。在后一种情况下,由于该函数未在任何地方返回,因此您绝对无能为力,因此我将忽略这种可能性。
要获取该值,您必须调用返回它的方法。您无法在其外部的方法内访问局部变量。这些变量无论如何仅在通话期间存在,并且每次都会重新创建:
def val2(self):
print(self.val1())
或更详细地说:
def val2(self):
b = self.val1()
print(b)
另一种方法是使值以非本地开头,并将其用作常规属性:
class ClassA:
def __init__(self):
self.b = 0
def val1(self):
self.a = 1
self.b = 2
class ClassB (ClassA):
def val2(self):
print(self.b) # prints 0 until `self.val1` is called.