python - 使用 Python 文件作为命名空间
问题描述
我遇到了一个看似微不足道的问题。
如果我们在 python 文件中定义这样的结构:
class A:
pass
class B:
a = A()
我们不能反过来定义它:
class B:
a = A # <-- the error is here
class A:
pass
编译器说a = A
是一个未解析的引用,但我们这样做,java
例如,没关系,它会编译。
这没什么大不了的,但是我想知道这背后的实际逻辑。这看起来好像不是一个复杂的结构,而是一个脚本,它一个一个地初始化类而不是分析它。
是否可以将python
文件转换为命名空间,类似于类中的函数,无论它们的定义顺序如何,它们都知道它们的存在?