繁体   English   中英

Python:检查函数的默认参数

[英]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)通常应该给你你需要的一切。 在右侧对齐argsdefaults 例如:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM