循环依赖导入模块中变量的范围

时间:2018-07-09 12:36:27

标签: python python-3.x class circular-dependency

这个问题是要了解导入的模块是循环依赖的时变量(类变量)的范围。

main_.py

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)

a_.py

class Test:
    def incr_class(self):
        from main_ import MyClass
        MyClass.append_my_list("hey")

我的预期输出是:['hello', 'hey']

程序返回:['hello']

当我调试时,它实际上会附加值'hey',但是当控件返回到main.py文件时,my_list会重新设置为['hello']

我知道这是不适当的Python编码方式,但希望从理论上理解当类与循环相关时类中发生了什么。

任何澄清/解释将不胜感激。

0 个答案:

没有答案