导入子模块会影响以前的导入吗?

Does importing sub-module affects previous imports?

考虑一下,

# create files for test
mkdir package
touch package/__init__.py
touch package/mod.py
import package

def foo() -> None:
    import package.mod

我认为内部 import package.mod 应该不会影响外部 import package。但是,pylint 检查告诉我,(该片段已保存到 foo.py

foo.py:4:4: W0621: Redefining name 'package' from outer scope (line 1) (redefined-outer-name)

这是否表明内部 import package.mod 会重新定义外部 import package

子包导入导入所有父包。你可以自己试试

import os.path

print(os)

所以

import package.sub_package

确实有定义 package

的副作用