Python言語では、一部のライブラリが使用されている場合、ネットワーク上で見つかったドキュメントは完全ではないため、対応するPythonオブジェクトに必要な関数または定数が含まれているかどうかを確認する必要があります。次に、メンバー関数、変数など、Pythonオブジェクトに含まれる属性を確認する方法を紹介します。Pythonオブジェクトは、クラス、モジュール、インスタンスなど、多くの要素を持つオブジェクトを参照します。ここでは、OpenCV2 Pythonパッケージcv2を例として使用して説明します。
OpenCVはC / C ++言語で実装されているため、Pythonユーザーが呼び出せるようにすべての関数と変数がパッケージ化されておらず、対応するドキュメントがインターネット上にない場合があります。OpenCVには2つのバージョンがあります:OpenCV2とOpenCV3、これら2つこのバージョンでは、使用される関数と変数にもいくつかの違いがあります。
1. dir()関数
dir ([ object ] )は、objectのすべての有効な属性のリストを返します。次に例を示します。
$ python Python 2.7.8(デフォルト、2015年9月24日、18:26:19) [GCC 4.9.2 20150212(Red Hat 4.9.2-6)] on linux2 「help」、「copyright」、「credits」と入力するか、詳しくは「ライセンス」をご覧ください。 >>> import cv2 >>> mser = cv2.MSER() >>> dir(mser) ['__class__'、 '__delattr__'、 '__doc__'、 '__format__'、 '__getattribute__'、 '__hash__'、 '__init__' 、 '__ new __'、 '__ reduce __'、 '__ reduce_ex __'、 '__ repr __'、 '__ setattr __'、 '__ sizeof __'、 '__ str __'、 '__ subclasshook __'、 'detect'、 'empty'、 'getAlgorithm'、getBgorithm getDouble '、' getInt '、' getMat '、'
2. vars()関数
vars ([ object ] )は、オブジェクトオブジェクトの__dict__属性を返します。オブジェクトオブジェクトは、モジュール、クラス、インスタンス、または__dict__属性を持つその他のオブジェクトです。したがって、__ dict__属性に直接アクセスすることと同じです。例は次のとおりです(これは反例です。mserオブジェクトには__dict__属性がありません)。
>>> vars(mser) トレースバック(最新の呼び出しが最後): ファイル "<stdin>"、1行目<モジュール> TypeError:vars()引数には__dict__属性が必要 >>> mser .__ dict__ トレースバック(最新の呼び出し最後): ファイル<stdin>、1行目<モジュール> AttributeError: 'cv2.MSER' object has no attribute '__dict__'
3.ヘルプ()関数
help ([ object ] )組み込みのヘルプシステムを呼び出します。入力
>>>ヘルプ(mser)
コンテンツは次のように表示されます。
MSERオブジェクトのヘルプ: クラスMSER(FeatureDetector) | メソッド解決順序: | MSER | FeatureDetector | アルゴリズム | __builtin __。object | | ここで定義されているメソッド: | | __repr __(...) | x .__ repr __()<==> repr(x) | | 検出(...) | detect(image [、mask])-> msers | | -------------------------------------------------- -------------------- | ここで定義されているデータおよびその他の属性: | | __new__ = <オブジェクト型の組み込みメソッド__new __> | T .__ new __(S、...)-> TのサブタイプであるタイプSの新しいオブジェクト
ヘルプ情報を表示するにはhキーを 押し、終了するにはqキーを押します。
4.タイプ()関数
type (object )はオブジェクトobjectのタイプを返します。
>>> type(mser) <type 'cv2.MSER'> >>> type(mser.detect) <type 'builtin_function_or_method'>
5. hasattr()関数
hasattr (object、name )は、 名前(文字列型)がオブジェクトの属性であるかどうかを判別するために使用され、Trueを返す場合はfalseを返します。
>>> hasattr(mser、 'detect') True >>> hasattr(mser、 'compute') False
6.呼び出し可能()関数
callable (object ):オブジェクトオブジェクトが呼び出し可能であればTrueを返し、そうでなければFalseを返します。呼び出しはTrueを返しても失敗する可能性がありますが、Falseを返す場合は失敗する必要があることに注意してください。
>>> callable(mser.detect) True
参考文献
1. https://stackoverflow.com/questions/2675028/list-attributes-of-an-object
2. https://docs.python.org/2/library/functions.html