这是 python 3.7 变更日志中的一点。
bpo-30024:现在支持涉及将子模块绑定到名称的绝对导入的循环导入。
在 3.6 中无法使用但现在可以使用的代码示例是什么?
这是 python 3.7 变更日志中的一点。
bpo-30024:现在支持涉及将子模块绑定到名称的绝对导入的循环导入。
在 3.6 中无法使用但现在可以使用的代码示例是什么?
问题 30024讨论了问题和补丁。但我没有发现它立即有帮助。它确实提到获得一个适当的、可理解的测试示例将是重要的一步。
该补丁添加了以下内容:
在 Lib/test/test_import/data/circular_imports/binding.py 中:
import test.test_import.data.circular_imports.binding2 as binding2
在 Lib/test/test_import/data/circular_imports/binding2.py 中:
import test.test_import.data.circular_imports.binding as binding
一个模块的两个子模块作为某个名称相互导入。这是之前可能失败的测试:
def test_binding(self):
try:
import test.test_import.data.circular_imports.binding
except ImportError:
self.fail('circular import with binding a submodule to a name failed')