python类无法识别在她内部声明的类

时间:2019-08-31 03:41:58

标签: python-3.x

这个问题必须是一个愚蠢但重要的问题,在stackoverflow中找不到对此的任何讨论。

我试图在另一个类(让我们说“ A”)中声明一个类(让我们说“ B”类),并在类“ A”的方法中使用该类(“ B”),但是对于出于某种原因,您无法在python中声明在同一类中声明的类类型的对象成员。

为什么会这样?在C语言中,您可以从外部类的方法访问内部类而没有任何问题... (我的意图是只有A类会永远需要B类类型的成员,而我只希望A能够发现像B这样的类...)

在python中这样做的正确方法是什么?

class A:
    def __init__(self):
        self.B_object = B()    # error 'unresolved refernace B'

    class B:
        def __init(self):
            pass

1 个答案:

答案 0 :(得分:1)

class A:
    def __init__(self):
        self.B_object = A.B()

    class B:
        def __init(self):
            pass

尝试一下 如果您想将B类设为私有,可以尝试

class A:
    def __init__(self):
        self.__B_object = A.__B()

    class __B:
        def __init__(self):
            pass