假设我有两个 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 的导入?