[英]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.