関数からグローバルインポートを行うには?
2023-11-21 17:40:31
質問
この問題に対するアプローチの仕方が雑なのではと心配になりますが
は、私がいくつかの条件に基づいてPythonでいくつかのインポートを作成したいとしましょう。
このために、私は関数を書きたいと思います。
def conditional_import_modules(test):
if test == 'foo':
import onemodule, anothermodule
elif test == 'bar':
import thirdmodule, and_another_module
else:
import all_the_other_modules
さて、インポートしたモジュールをグローバルに利用できるようにするにはどうしたらよいでしょうか。
例えば
conditional_import_modules(test='bar')
thirdmodule.myfunction()
どのように解決するのですか?
インポートされたモジュールは単なる変数で、名前と値が結びつけられています。 ですから、必要なのはそれらをインポートして、グローバルにすることです。
global
キーワードでグローバルにすることです。
例
>>> math
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'math' is not defined
>>> def f():
... global math
... import math
...
>>> f()
>>> math
<module 'math' from '/usr/local/lib/python2.6/lib-dynload/math.so'>
関連
-
[解決済み] 関数デコレータを作成し、それらを連鎖させるには?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] 億の相対的輸入
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
-
[解決済み] Pythonでコード行間にかかる時間を測定するには?
-
[解決済み] バブルソートの宿題
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] Python Logging でログメッセージが2回表示される件
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] Python 言語を決定するには?