[英]Python: check a function's default arguments
给定一个带有许多关键字参数的函数(例如create_instances
),我如何知道哪些参数具有默认值,以及究竟什么是默认值?
为了提供完整的上下文,我使用的是 boto3 AWS Python API:
import boto3
ec2 = boto3.resource('ec2')
ec2.create_instances( ... )
例如, create_instances
函数接受一个参数MaxCount
,但我想知道它是否有默认值。 我在检查模块中环顾四周,但没有发现任何有用的东西。
create_instances
的文档位于https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.ServiceResource.create_instances
inspect.getfullargspec(ec2.create_instance)
通常应该给你你需要的一切。 在右侧对齐args
和defaults
。 例如:
def foo(a, b=3, *c, d=5):
m = a + b
return m
argspec = inspect.getfullargspec(ec2.create_instance)
{**dict(zip(argspec.args[-len(argspec.defaults):], argspec.defaults)),
**argspec.kwonlydefaults}
# => {'b': 3, 'd': 5}
正如@9769953 所说,如果一个参数捆绑在**kwargs
,它将由函数的代码处理,因此不会在函数签名中找到。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.