关于循环导入的python 3.7有什么新内容?

Dim*_*ius 2 python python-3.7

这是python 3.7 changelog中的一点.

bpo-30024:现在支持涉及将子模块绑定到名称的绝对导入的循环导入.

在3.6中不起作用但现在有效的代码示例是什么?

Ter*_*edy 5

问题30024讨论了问题和补丁.但我没有立即发现它有用.它确实提到,获得一个适当的,可理解的测试示例将是一个重要的步骤.

补丁添加了以下内容:

在Lib/test/test_import/data/circular_imports/binding.py中:

import test.test_import.data.circular_imports.binding2 as binding2
Run Code Online (Sandbox Code Playgroud)

在Lib/test/test_import/data/circular_imports/binding2.py中:

import test.test_import.data.circular_imports.binding as binding
Run Code Online (Sandbox Code Playgroud)

模块的两个子模块作为某个名称互相导入.以下是可能在之前失败的测试:

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')
Run Code Online (Sandbox Code Playgroud)