2016-04-25 4 views
10

私は両者の使い方を知っていますが、私はその決定がなぜステートメントを作るのか、そしてもうひとつの機能を作るのかが不思議です。あなたがimportlib's documentationから、機能を使用してインポートすることができ、すべてのなぜ "インポート"はステートメントですが、関数を "リロード"しますか?

+0

それについては決して考えませんでした。 – linusg

+0

'import'ステートメントは、' from __ import __ as __'のような別の構文の利点があるため、 'reload'はモジュールオブジェクトだけでローダーを再利用する必要があります。 –

+0

'import'をモジュールのインポートに使用すると、' reload() 'もモジュールの特定の部分を読み込むことができます。 – linusg

答えて

6

まず:

__import__()機能
import文はこの関数のシンタックスシュガーです。

は、例えば、これらのステートメントの両方が同等である:import文が大幅に本当にすべての代替意味を持っていませんreloadなどの代替構文の恩恵を受けるしかし

from random import randint as random_int 

random_int = __import__("random").randint 

reload機能がなぜ不思議に思うかもしれコーダー(from _ import *とpreducedされていない)モジュールを必要とするので

from random import * 
reload random #does not affect the current namespace! 

リロードはそれがあった場合、私もこの間違いを犯して初心者プログラマの多くを想像することができますが自分の文のインポートされた名前は再ロードされません。に関連するthis answer

関連する問題