【发布时间】:2016-10-11 10:41:18
【问题描述】:
我希望能够根据参数的数量对未知函数/内置函数/可调用函数进行分类。
我可能会写一段这样的代码:
if numberOfParameters(f) == 0:
noParameters.append(f)
elif numberOfParameters(f) == 1:
oneParameter.append(f)
else:
manyParameters.append(f)
但我不知道如何实现numberOfParameters()。 inspect.getargspec 不适用于内置函数。我不能使用异常,因为调用该函数可能很昂贵。
如果该解决方案同时适用于 Python 2.7 和 Python 3.3+,那就太好了
【问题讨论】:
-
你试过
help(...)吗?例如。对于sorted,它包含:sorted(iterable, cmp=None, key=None, reverse=False)。 -
@jbndlr 这需要解析文档字符串...我不确定你是否想进入那个兔子洞。
-
@jbndlr 我需要以编程方式进行。更新了问题。
-
@juanpa.arrivillaga 他没有提到以编程方式进行(在他编辑之前),我不认为有人会想要为代码中的内置函数执行此操作。
-
咬紧牙关,组装一个由内置函数(至少是您关心的那些)键入的字典,其值是您想要的信息?它不应该花那么长时间。
[b for b in dir(__builtins__) if b == b.lower() and not b.startswith('_')]只包含几十个条目,并非所有条目都是函数。
标签: python python-2.7 function python-3.x callable