名称未定义错误,当名称已在同一modu中定义

2024-05-01 22:05:12 发布

您现在位置:Python中文网/ 问答频道 /正文

检查以下模块。你知道吗

# mod.py

class A:
   o = B()

class B:
   o = A()

我有完全相同的模块。班级布局相同。我如何定义这样的事情?你知道吗


Tags: 模块pymod定义布局事情class班级
2条回答

(注意:正在做的事情很奇怪,但只是回答问题)

您可以在模块内部的运行时设置属性。是的,这有点难看,但它是有效的:

class A(object):
   pass

class B(object):
   pass

# setattr(B, 'o', A())
# setattr(A, 'o', B())
B.o = A()  # Making Martijn happy!
A.o = B()

if __name__ == '__main__':
    print A().o
    print B().o

不,B在执行class A的主体(立即执行)时尚未定义。你知道吗

在定义B之后添加A.o

class A:
    pass

class B:
    o = A()

A.o = B()

相关问题 更多 >