这个问题是为了理解当导入的模块循环相关时变量(类变量)的范围
import a_
class MyClass:
my_list = ["hello"]
@classmethod
def append_my_list(cls, item):
if item not in cls.my_list:
cls.my_list.append(item)
if __name__ == "__main__":
m_obj = MyClass()
t_obj = a_.Test()
t_obj.incr_class()
print(MyClass.my_list)
class Test:
def incr_class(self):
from main_ import MyClass
MyClass.append_my_list("hey")
我的预期输出是:['hello', 'hey']
程序返回:['hello']
当我调试它时,它实际上会附加值'hey'
,但是当控件返回到main.py
文件时,我的_列表被设置回['hello']
我知道这是一种不合适的Python编码方式,但我想从理论上理解类在循环依赖时发生了什么
如有任何澄清/解释,将不胜感激。谢谢
目前没有回答
相关问题 更多 >
编程相关推荐