gpt4 book ai didi

python - 访问另一个文件中的类属性

转载 作者:太空宇宙 更新时间:2023-11-03 16:19:18 24 4
gpt4 key购买 nike

我是Python新手。

我有一个关于访问类中属性的问题

t1.py

#!/usr/bin/python
import t2

class A:
flag = False

if __name__ == "__main__":
t2.f()
print(A.flag)

t2.py

#!/usr/bin/python
import t1

def f():
t1.A.flag = True
print(t1.A.flag)

执行结果:

# ./t1.py
True
False

我希望结果必须是 True,True。

t1.py 中的 A.flag 和 t2.py 中的 t1.A.flag 是否不同?

执行这段代码时,Python 中会发生什么?

谢谢。

最佳答案

当你这样做时

./t1.py

您正在执行 t1.py 文件,但它不是作为 t1 模块执行的。它被认为是 __main__ 模块。 (这就是 if __name__ == '__main__' 行检查的内容。)这意味着当这一行:

import t1

t2.py尝试导入t1时,Python再次开始执行t1.py文件创建 t1 模块。您最终会得到 A 类的两个版本,一个是 __main__.A,另一个是 t1.A。对 t1.A 的修改不会对 __main__.A 执行任何操作,因为即使它们来自同一文件中的相同代码,但它们并不相同类。

关于python - 访问另一个文件中的类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38649575/

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