导入子模块会影响以前的导入吗?
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
的副作用
考虑一下,
# 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