如何在python中的其他类的方法中打印定义的变量值?

时间:2018-10-31 17:02:34

标签: python class methods

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 

1 个答案:

答案 0 :(得分:1)

以下答案基于您的缩进错误并且val1ClassA的一种方法,而不是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.