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

What's new in python 3.7 about circular imports?

这是 python 3.7 更新日志中的一点。

bpo-30024: Circular imports involving absolute imports with binding a submodule to a name are now supported.

在 3.6 中无法运行但现在可以运行的代码示例是什么?

Issue 30024 讨论问题和补丁。但我并没有立即发现它有帮助。它确实提到获得适当的、易于理解的测试示例将是重要的一步。

patch 添加了以下内容:

在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')