【问题标题】:How to retrieve/know function's default values [duplicate]如何检索/知道函数的默认值 [重复]
【发布时间】:2018-06-07 06:35:55
【问题描述】:

我是一个 python 初学者,我目前正在为一些(可能很简单)的东西而苦恼。我想知道python函数的默认参数,更具体地说是cv2.ORB_create()

通过以下代码,我设法看到了“文档字符串”:

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__'

也许我缺少函数、模块等之间的链接,但我真的被卡住了......

因为有人担心这是重复的。我还尝试了inspect.signature 和扩展名inspect.getargspec,但这给了我另一个错误ValueError: no signature found for builtin <built-in function ORB_create>

【问题讨论】:

  • 对不起,我忘了提到inspect.signature 和扩展名inspect.getargspec 也失败了。所以其他答案没有/没有帮助我。

标签: python function default-value


【解决方案1】:

cv2.ORB_create() 似乎是用 Python 扩展(用 C 而不是 Python)编写的函数。因此,它不是一个“普通”函数对象,并且无法可靠地查看默认值(因为它是在 C 中手动处理的)。

一种可能的解决方案是查看__text_signature__ 属性,但这可能不可靠。见What are __signature__ and __text_signature__ used for in Python 3.4

【讨论】:

  • 谢谢,这解释了我的问题。不幸的是,__text_signature__ 返回无。但我会仔细看看你的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 2011-09-23
  • 2014-02-10
  • 2013-02-10
  • 2011-06-18
相关资源
最近更新 更多