0

我对 Python 嵌套类有点进退两难。我想要做的是从 A 类顶层的函数中获取变量并在子类 B 中使用它们。像这样

 class A:
   def function_A():
      value = 5

      class B:
        def function_B(self):
            print (A.value)

如果我将变量转换为如下所示的类变量,则下面的此方法有效,但它不符合我的要求:

 class A:
   value = 5

      class B:
        def function_B(self):
            print (A.value)

我猜这是不可能的,所以任何人都可以提供解决方法吗?

4

2 回答 2

1

该变量value是 的本地变量function_A,并且仅在该方法运行时才存在。当它不执行时,根本没有什么可以访问的,执行时function_B就是这种情况。特别是,在您的第一个示例中,它不是的属性A,也不是 . 的任何实例的属性A

从您的代码中不清楚您实际上打算用这样的 a 做什么value,因此很难提出进一步的建议。

于 2016-02-14T22:15:29.300 回答
-1

类 A 没有属性value,因为value变量是在function_A函数内部定义的。因此,您不必value作为类的属性访问,而是作为可以从 class 访问的普通变量B,因为它在同一范围内。你必须删除A.之前value

例子:

class A:
    def function_A():
        value = 5

        class B:
            def function_B():
                print (value)

        var = B
        var.function_B()

test = A
test.function_A()
于 2016-02-14T21:56:54.163 回答