[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
2022-03-15 14:01:49
質問
Pythonのプログラムで、関数名の文字列を指定して関数を呼び出すには、どのような方法が良いでしょうか。例えば、私はモジュールを持っているとしましょう
foo
という文字列があり、その中身は
"bar"
. を呼び出す最良の方法は何でしょうか?
foo.bar()
?
関数の戻り値を取得する必要があるため、単に
eval
. を使うことでどうすればいいか考えました。
eval
を使用して、その関数呼び出しの結果を返す temp 関数を定義していますが、これを行うよりエレガントな方法があることを期待しています。
どのように解決するのですか?
想定されるモジュール
foo
というメソッドで
bar
:
import foo
method_to_call = getattr(foo, 'bar')
result = method_to_call()
2行目と3行目を短縮して
result = getattr(foo, 'bar')()
を使用すると、より理にかなっています。
を使用することができます。
getattr
この方法で、クラスインスタンス結合メソッド、モジュールレベルメソッド、クラスメソッドなど、数え上げればきりがありません。
関連
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] 関数名を文字列として取得するには?
-
[解決済み] 関数名をその関数内から判断する(トレースバックを使用しない)。
-
[解決済み] モジュール名を文字列で指定してインポートするには?
-
[解決済み] 文字列からPandas DataFrameを作成する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
python string splicing.join()とsplitting.split()の説明
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】Flaskのテンプレートが見つからない【重複あり