首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中避免循环导入?

如何在Python中避免循环导入?
EN

Stack Overflow用户
提问于 2011-09-07 23:49:54
回答 1查看 106.4K关注 0票数 154

我知道在python中循环导入的问题以前已经被提过很多次了,我也读过这些讨论。在这些讨论中反复提出的评论是,循环导入是一个糟糕设计的标志,应该重新组织代码以避免循环导入。

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

更具体地说,一个类是可变的,另一个类是不可变的。不可变的类是散列、比较等所需要的。可变类也是做事情所必需的。这类似于集合和冻结集,或者类似于列表和元组。

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-07 23:55:38

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

考虑a.py

代码语言:javascript
复制
import b

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

b.py

代码语言:javascript
复制
import a

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

这可以很好地工作。

票数 142
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7336802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档