如何 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