Python-从嵌套类中获取父类函数即时变量

时间:2016-02-14 21:41:09

标签: python function class objectinstantiation

我在使用Python嵌套类时遇到了一些困境。我想要做的是从A类顶层的函数中获取变量,并在子类B中使用它们。 像这样的东西

public void Add(Logged user)
{
    if (!UserList.Any(u => u.Username == user.Username))
    {
        UserList.Add(user);
    }
}

如果我将变量转换为如下所示的类变量但是它没有做我想做的事情,则下面的方法有效:

 class A:
   def function_A():
      value = 5

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

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

2 个答案:

答案 0 :(得分:1)

变量valuefunction_A的本地变量,仅在该方法运行时才存在。当它不执行时,没有什么可以访问的,这将是function_B执行时的情况。特别是,在您的第一个示例中,属性AA的任何实例。

从您的代码中不清楚您实际上打算如何处理这样的value,因此很难提出进一步的建议。

答案 1 :(得分:-1)

A类没有属性value,因为value变量是在function_A函数内定义的。因此,您不必访问value作为类的属性,而是作为可以从类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()