簡體   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