gpt4 book ai didi

python - 导入具有相互依赖的类变量的类时如何解决 NameError

转载 作者:行者123 更新时间:2023-12-01 01:03:23 30 4
gpt4 key购买 nike

我在文件中创建一个类。声明一些类变量 A = 5 和另一个类变量 B = A+1。从另一个文件导入该类时,出现 NameError: name 'A' is not Defined。有没有办法解决这个问题,或者类变量可以/应该不依赖于其他类变量,就像我试图这样做的那样?

请注意,只有当我从另一个文件导入时才会发生此名称错误。如果我要定义类并在同一个文件中创建该类的实例,那么一切都会顺利进行。

文件:file1.py

class foo:
A = 5
B = A+7

文件:file2.py

from file1 import foo

然后我运行:

python file2.py

并得到

NameError: name 'A' is not defined.

编辑:上面的例子太简单了,无法反射(reflect)我的实际问题。我实际上是想这样定义一个类:

class foo:
A = 5
B = [i*A for A in range(3)]

它在 Python 3 中不起作用的原因可以在我的答案中的链接中找到。

最佳答案

使用类变量的限定名称:

this_module.py中:

class C:
a = 0
b = C.a + 1

...在其他文件中:

from this_module import C

关于python - 导入具有相互依赖的类变量的类时如何解决 NameError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55592445/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com