6

2 つの 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を再インポートする方がエチケットとして適切ですか?module2module1.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ですか?

4

2 に答える 2