导入两个文件,都需要导入

时间:2018-04-12 11:59:35

标签: python python-3.x class import

我有两个py文件,简化了几行的问题。

一:

from Two import PrintTwo

class PrintOne(object):
    print('HelloOne')

二:

from One import PrintOne

class PrintTwo(object):

    print('HelloTwo')

这会显示以下消息:无法按预期导入名称'PrintTwo'。

但我的问题是我需要在两个文件中使用这些类的一些函数。

我无法找到解决方案,这样的案例的正确工作流程如何?

亲切的问候

1 个答案:

答案 0 :(得分:3)

这称为循环导入,如果您正确设置它们,它们可以正常工作。但是,我不建议使用循环导入,而是重构代码。

如果我没有看到它,很难说代码会改变什么。当我体验循环导入时,我试图通过重构代码来避免它们。可能的解决方案是:

  • 移动"共享"的位代码到自己的Python模块(推荐)
  • 懒惰导入模块/组件,意味着只在您使用它时导入它(工作但不是真正有光泽)

我无法根据上面的代码向您展示一个示例,因为您只是循环导入模块但不使用它们。

如前所述,解决方法是仅在您使用导入时使用导入,例如:

class PrintOne:

    def some_magic_method(self):
        from Two import PrintTwo