假设我有两个 Python 模块:
module1.py
:
import module2
def myFunct(): print "called from module1"
module2.py
:
def myFunct(): print "called from module2"
def someFunct(): print "also called from module2"
如果我进口module1
,重新进口是更好的礼仪module2
,还是只是将其称为module1.module2
?
例如 ( someotherfile.py
):
import module1
module1.myFunct() # prints "called from module1"
module1.module2.myFunct() # prints "called from module2"
我也可以这样做:module2 = module1.module2
。现在,我可以直接调用module2.myFunct()
.
但是,我可以更改module1.py
为:
from module2 import *
def myFunct(): print "called from module1"
现在,在 中someotherfile.py
,我可以这样做:
import module1
module1.myFunct() # prints "called from module1"; overrides module2
module1.someFunct() # prints "also called from module2"
此外,通过导入*
, help('module1') 显示来自 的所有函数module2
。
另一方面,(假设module1.py
使用import module2
),我可以这样做
someotherfile.py
:
import module1, module2
module1.myFunct() # prints "called from module1"
module2.myFunct() # prints "called from module2"
再次,哪个是更好的礼仪和实践?再次导入module2
,还是仅引用module1
's 的导入?