如何从嵌套 class 中引用另一个嵌套 class

How to reference another nested class from within nested class

我有以下嵌套结构:

from peewee import *

class Parent:
    ...
    class A:
        name = TextField()

    class B:
        from_A = ForeignKeyField(A)

我试图在 class B 中的 ForeignKeyField 中引用 class A,但是 AParent.A return 均未找到名称错误.从 class B 中引用 class A 的正确方法是什么?这可能吗?

定义class B时,classParent没有完全定义所以不能使用:定义时只能使用:

  • 全局变量
  • 属于被定义元素的变量

但是您无权访问封闭块中定义的变量,无论它们是否 class。

所以你只有两个选择:

  • 在 Parent
  • 之外定义 class B
  • 在定义所有内容后的 运行 时间初始化元素(从这个意义上说,运行 时间立即从 class Parent 块的末尾开始`) :

    class Parent:
        ...
        class A:
            name = TextField()
    
        class B:
             ...
    
    Parent.B.from_A = ForeignKeyField(Parent.A)