「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python 変数が関数を表しているかどうかを確認するにはどうすればよいですか?

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

2024 年 11 月 12 日に公開
ブラウズ:303

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

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

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

Callable Objects と hasattr

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

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

>>> isinstance(open,types.FunctionType) 間違い >>> 呼び出し可能(オープン) True

したがって、オブジェクトの呼び出し可能な性質を検証するには、特定のクラス定義への適合性ではなく、その呼び出し可能性を明示的にチェックする必要があります。
リリースステートメント この記事は次の場所に転載されています: 1729252937 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3