如何 retrieve/know 函数的默认值
How to retrieve/know function's default values
我是一个 python 初学者,我目前正在努力解决一些(可能非常简单的)问题。我想知道 python 函数的默认参数,更具体地说是 cv2.ORB_create()
.
通过以下代码,我设法看到了 'documentation string':
import cv2
orb = cv2.ORB_create()
print(cv2.ORB_create.__doc__)
然而,print(cv2.ORB_create.__defaults__)
只是给我一个错误;
AttributeError: 'builtin_function_or_method' object has no attribute '__defaults__'
也许我在函数、模块等之间遗漏了一个link,但我真的卡住了...
因为有人担心这是重复的。我也尝试了 inspect.signature
并扩展为 inspect.getargspec
,但这给了我另一个错误 ValueError: no signature found for builtin <built-in function ORB_create>
。
cv2.ORB_create()
似乎是用 Python 扩展编写的函数(在 C 中而不是 Python)。因此,它不是 "normal" 函数对象,并且无法可靠地查看默认值(因为它是在 C 中手动处理的)。
一种可能的解决方案是查看 __text_signature__
属性,但这可能不可靠。参见 What are __signature__ and __text_signature__ used for in Python 3.4。
我是一个 python 初学者,我目前正在努力解决一些(可能非常简单的)问题。我想知道 python 函数的默认参数,更具体地说是 cv2.ORB_create()
.
通过以下代码,我设法看到了 'documentation string':
import cv2
orb = cv2.ORB_create()
print(cv2.ORB_create.__doc__)
然而,print(cv2.ORB_create.__defaults__)
只是给我一个错误;
AttributeError: 'builtin_function_or_method' object has no attribute '__defaults__'
也许我在函数、模块等之间遗漏了一个link,但我真的卡住了...
因为有人担心这是重复的。我也尝试了 inspect.signature
并扩展为 inspect.getargspec
,但这给了我另一个错误 ValueError: no signature found for builtin <built-in function ORB_create>
。
cv2.ORB_create()
似乎是用 Python 扩展编写的函数(在 C 中而不是 Python)。因此,它不是 "normal" 函数对象,并且无法可靠地查看默认值(因为它是在 C 中手动处理的)。
一种可能的解决方案是查看 __text_signature__
属性,但这可能不可靠。参见 What are __signature__ and __text_signature__ used for in Python 3.4。