10
私は両者の使い方を知っていますが、私はその決定がなぜステートメントを作るのか、そしてもうひとつの機能を作るのかが不思議です。あなたがimportlib's documentationから、機能を使用してインポートすることができ、すべてのなぜ "インポート"はステートメントですが、関数を "リロード"しますか?
私は両者の使い方を知っていますが、私はその決定がなぜステートメントを作るのか、そしてもうひとつの機能を作るのかが不思議です。あなたがimportlib's documentationから、機能を使用してインポートすることができ、すべてのなぜ "インポート"はステートメントですが、関数を "リロード"しますか?
まず:
__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
それについては決して考えませんでした。 – linusg
'import'ステートメントは、' from __ import __ as __'のような別の構文の利点があるため、 'reload'はモジュールオブジェクトだけでローダーを再利用する必要があります。 –
'import'をモジュールのインポートに使用すると、' reload() 'もモジュールの特定の部分を読み込むことができます。 – linusg