如何避免Python中的循环导入?

BWW:

我知道python中的循环导入问题已经出现过很多次了,我已经阅读了这些讨论。在这些讨论中反复提出的意见是,循环导入表明设计不良,应重新组织代码以避免循环导入。

有人可以告诉我在这种情况下如何避免循环导入吗?:我有两个类,并且我希望每个类都有一个构造函数(方法),该构造函数接受另一个类的实例并返回该类的实例。

更具体地说,一类是可变的,一类是不变的。哈希,比较等需要不可变的类。可变类也需要做事。这类似于集合和冻结集合或列表和元组。

我可以将两个类定义放在同一模块中。还有其他建议吗?

一个玩具示例将是类A,其属性为列表,而类B的属性为元组。然后,类A具有一个方法,该方法采用类B的一个实例并返回类A的一个实例(通过将元组转换为列表),类似地,类B也具有一个方法,该方法采用类A的实例并返回类B的一个实例。 (通过将列表转换为元组)。

谣言:

仅导入模块,不从模块导入:

考虑a.py

import b

class A:
    def bar(self):
        return b.B()

b.py

import a

class B:
    def bar(self):
        return a.A()

这工作得很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章