Python 使用inspect.getargfullspec()查找函数不工作的情况

Python 使用inspect.getargfullspec()查找函数不工作的情况,python,function,parameters,arguments,Python,Function,Parameters,Arguments,我正在尝试了解函数有哪些选项和参数,以便能够充分利用它。例如,我想了解默认打印函数接受哪种类型的参数,也许还需要一些关于参数的文档,例如每个参数的作用、每个参数的选项等等。我读了很多书,发现getargfullspec就是这个方法。我是对的,还是有更简单的方法 不管怎样,我试过了,但出了一个错误 import inspect inspect.getfullargspec(print) 它给出了这个错误 TypeError: unsupported callable 知道为什么吗?了解函数的最

我正在尝试了解函数有哪些选项和参数,以便能够充分利用它。例如,我想了解默认打印函数接受哪种类型的参数,也许还需要一些关于参数的文档,例如每个参数的作用、每个参数的选项等等。我读了很多书,发现getargfullspec就是这个方法。我是对的,还是有更简单的方法

不管怎样,我试过了,但出了一个错误

import inspect
inspect.getfullargspec(print)
它给出了这个错误

TypeError: unsupported callable

知道为什么吗?

了解函数的最佳方法是读取其docstring并查看它是如何实现的。这可以通过运行帮助功能来完成

E-helpint向您展示了使用int函数可以做什么

比如说-

import datetime
help(datetime.datetime.strptime)
会回来的

strptime(...)
    string, format -> new datetime parsed from a string (like time.strptime()).
您可以阅读有关帮助函数的更多信息

inspect.getfullargspec支持的函数只有那些使用def或lambda在Python代码中创建的函数。从:

inspect.getfullargspecfunc

获取Python函数参数的名称和默认值

我的。然而,print在技术上不是Python函数,因为它是用C编写的:

>>> import types
>>> # FunctionType represents Python functions
>>> isinstance(print, types.FunctionType)
False
>>> # BuiltinFunctionType represents C functions
>>> isinstance(print, types.BuiltinFunctionType)
True
>>>
这就是将其传递给inspect.getfullargspec时引发TypeError的原因


此外,使用inspect.getfullargspec获取函数信息实际上只在元编程中使用。如果您只是在寻找文档或用法,您应该像@thomas所说的那样在交互式解释器中使用,或者在线阅读。

使用C语言编写的函数是不可能的,至少不容易。谢谢!我用下面的代码在一个函数上尝试了这一点:helptkinter.filedialog.askopenfiles,得到了这个askopenfilesmode='r',**选项要求多个文件名并返回打开的文件对象。我如何更详细地了解**选项采用哪些参数?**表示该函数采用任意数量的关键字参数。有关可以传递到askopenfiles的内容的列表,请参阅文档:
>>> import types
>>> # FunctionType represents Python functions
>>> isinstance(print, types.FunctionType)
False
>>> # BuiltinFunctionType represents C functions
>>> isinstance(print, types.BuiltinFunctionType)
True
>>>