tom*_*dee 31 python parameters function
我正在创建一个简单的命令行实用程序,并使用字典作为一种case语句,其关键字链接到它们的相应函数.这些函数都有不同数量的参数,因此目前检查用户是否输入了每个函数所需的正确数量的参数,我将所需的金额放入表单中的字典case语句中{Keyword:(FunctionName, AmountofArguments)}.
这个当前的设置工作得非常好但是我只是想知道自我改进的利益,如果有一种方法来确定函数中所需的参数数量,我的谷歌尝试返回到目前为止没有任何价值,但我看到args和kwargs因为他们允许的论据数量无限,所以可以搞砸这样的命令.
gim*_*mel 40
获取函数参数的名称和默认值.返回四个元组的元组:(args,varargs,varkw,defaults).args是参数名称的列表(它可能包含嵌套列表).varargs和varkw是*和**参数的名称或None.defaults是默认参数值的元组,如果没有默认参数,则为None; 如果这个元组有n个元素,它们对应于args中列出的最后n个元素.
Ste*_*202 15
你想要的通常是不可能的,因为使用了varargs和kwargs,但是inspect.getargspec(Python 2.x)和inspect.getfullargspec(Python 3.x)接近了.
Python 2.x:
>>> import inspect
>>> def add(a, b=0):
... return a + b
...
>>> inspect.getargspec(add)
(['a', 'b'], None, None, (0,))
>>> len(inspect.getargspec(add)[0])
2
Run Code Online (Sandbox Code Playgroud)Python 3.x:
>>> import inspect
>>> def add(a, b=0):
... return a + b
...
>>> inspect.getfullargspec(add)
FullArgSpec(args=['a', 'b'], varargs=None, varkw=None, defaults=(0,), kwonlyargs=[], kwonlydefaults=None, annotations={})
>>> len(inspect.getfullargspec(add).args)
2
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
20450 次 |
| 最近记录: |