ホームページ  >  記事  >  バックエンド開発  >  Python 変数が関数を表しているかどうかを確認するにはどうすればよいですか?

Python 変数が関数を表しているかどうかを確認するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-18 20:03:30420ブラウズ

How can I Determine if a Python Variable Represents a Function?

Python で変数が関数を表しているかどうかを確認する方法

Python では、変数が関数を指しているかどうかを確認すると便利です。関数。最初は isinstance(x, function) の使用を検討するかもしれませんが、Python は未定義の関数クラスに対して NameError を発生させます。

呼び出し可能なオブジェクトと hasattr

変数は関数ですが、Python では callable() が提供されています。 Python 2.x および Python 3.2 の場合、このメソッドは呼び出し可能なオブジェクトをチェックする機能を提供します。あるいは、Python 3.2 より前の 3.x の場合は、 hasattr(obj, '__call__') を使用して、オブジェクトが呼び出し可能なオブジェクトの特徴である __call__ 属性を持っているかどうかを調べることができます。およびinspect.isfunction

types.FunctionTypesまたはinspect.isfunctionを利用するアプローチが提案されていますが、これらの方法には制限があります。 Python 以外の関数の場合は False を返します。 C で実装された組み込み関数は、呼び出し可能であってもこのチェックに合格しません。

したがって、オブジェクトの呼び出し可能な性質を検証するには、適合性ではなく、呼び出し可能性を明示的にチェックする必要があります。特定のクラス定義に。

以上がPython 変数が関数を表しているかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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