2017-12-26 22 views
1

私はPythonの初心者です。私は現在、(おそらくかなり単純な)ものと闘っています。私は、Python関数のデフォルトパラメータ、具体的にはcv2.ORB_create()を知りたいと思います。私は「説明文字列」を参照するために管理し、次のコードで関数のデフォルト値を取得/知る方法

:しかし、print(cv2.ORB_create.__defaults__)はちょうど私にエラーを与える

import cv2 
orb = cv2.ORB_create() 
print(cv2.ORB_create.__doc__) 

を。懸念は、これが重複していることを育ったので...

AttributeError: 'builtin_function_or_method' object has no attribute '__defaults__' 

は、たぶん私は、関数、モジュールなどとの間のリンクをしないのですが、私は本当にこだわっています。私もinspect.signatureと拡張子inspect.getargspecを試しましたが、これは私に別のエラーValueError: no signature found for builtin <built-in function ORB_create>を与えます。

+0

申し訳ありませんが、私は 'inspect.signature'と拡張子' inspect.getargspec'も失敗したことを忘れていました。だから、他の答えは私を助けてくれませんでした。 – user73202

答えて

0

cv2.ORB_create()は、Python拡張機能(PythonではなくC言語)で書かれた関数のようです。したがって、これは "通常の"関数オブジェクトではなく、Cで手動で処理されるため、デフォルト値を確実に見る方法はありません。

可能な解決策の1つは、__text_signature__属性を調べることですが、これは信頼できない場合があります。 What are __signature__ and __text_signature__ used for in Python 3.4を参照してください。

+0

ありがとう、それは私の問題を説明します。 Unfortunatelly、 '__text_signature__'はNoneを返します。しかし、私はあなたを詳しく見ていきます。 – user73202

関連する問題