ホームページ  >  記事  >  バックエンド開発  >  Pythonで関数名の文字列を介してこの関数を呼び出す方法

Pythonで関数名の文字列を介してこの関数を呼び出す方法

silencement
silencementオリジナル
2019-05-25 13:50:255756ブラウズ

Pythonで関数名の文字列を介してこの関数を呼び出す方法

実行リスト内の関数を走査しますが、リストから取得した関数名は文字列であるため、型エラーが表示され、文字列オブジェクトを呼び出すことができません。文字列を呼び出し可能なオブジェクトにしたい場合はどうすればよいでしょうか?それとも、変数を通じてモジュール属性とクラス属性を呼び出しますか?これを実現するには 3 つの方法があります

1. eval()

Pythonで関数名の文字列を介してこの関数を呼び出す方法

##eval() は通常、文字列式を実行し、式の値を返すために使用されます。ここでは、文字列を対応する関数に変換します。 eval() は強力ですが危険であるため (eval は悪です)、推奨されません。

#2、ローカル() およびグローバル()

Pythonで関数名の文字列を介してこの関数を呼び出す方法

##locals() と globals() は Python の 2 つの組み込み関数であり、これらを介してディクショナリ内のローカル変数とグローバル変数にアクセスできます。

3. getattr()getattr() は Python の組み込み関数 getattr(object,name) です。は object.name と同等ですが、ここでは name を変数にすることができます。

foo モジュールの bar メソッドを返します

Pythonで関数名の文字列を介してこの関数を呼び出す方法Foo クラスのプロパティを返します

標準ライブラリ演算子のメソッド呼び出し関数

Pythonで関数名の文字列を介してこの関数を呼び出す方法

以上がPythonで関数名の文字列を介してこの関数を呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。