【发布时间】:2018-09-22 13:45:31
【问题描述】:
我有两个 py 文件并将我的问题简化为几行。
一个:
from Two import PrintTwo
class PrintOne(object):
print('HelloOne')
两个:
from One import PrintOne
class PrintTwo(object):
print('HelloTwo')
这会显示此消息:无法按预期导入名称“PrintTwo”。
但我的问题是我需要在两个文件中使用这些类的一些功能。
我找不到解决方案,对于这种情况,正确的工作流程如何?
亲切的问候
【问题讨论】:
-
您正在创建循环导入。为了像这样混合和匹配这些类需要一起声明,我不相信还有任何其他“正确”的解决方案
-
一起声明意味着在一个文件中?
-
是的,取决于您打算如何使用每个文件中的方法,还有其他解决方法,但它们不是好的做法,例如在文件开头导入而不是在文件开头导入需要它(在导入时未执行的内部函数或类函数),但这不允许您执行子类化等操作
-
谢谢!拥有第三个文件是否是一个好的解决方案,让我们称之为“传输”,我处理通过文件交换的所有数据?
-
添加第三个文件并不能真正解决任何问题,因为您在每个文件中仍然有单独的命名空间,您唯一的解决方案是将两个类放入一个文件中,或者作为多米尼克的答案,您使用惰性导入,但如前所述,这意味着您不能将这些导入的类用于子类。
标签: python python-3.x class import