python检查函数中所需的KWARG

python检查函数中所需的KWARG,python,Python,我只想检查所需的KWARG是否必须发送到函数: def myfunca() kwargs = {'a'=1, 'b'=2} anyfunc(**kwargs) return def anyfunc(**kwargs): check_kwargs(**kwargs) print kwargs['a'] print kwargs['c'] total = kwargs['a'] + kwargs['c'] return

我只想检查所需的KWARG是否必须发送到函数:

def myfunca()
    kwargs = {'a'=1, 'b'=2}
    anyfunc(**kwargs)
    return

def anyfunc(**kwargs):

    check_kwargs(**kwargs)    

    print kwargs['a']
    print kwargs['c']
    total = kwargs['a'] + kwargs['c']
    return 


def check_kwargs(**kwargs):
    check if the kwargs required anyfunc is provided from myfunc() 
    if there is not required kwargs for anyfunc then raise appropriate errors 

需要建议

使用
断言
。比如说,

def check_kwargs(kwargdict, requiredargs):
    for r in requiredargs:
        assert r in kwargdict.keys()

requiredargs
将是一个iterable,其中包含需要出现的参数的名称。您还应该从对
check\u kwargs
的调用中删除
**
,因为这没有任何意义。

使用
断言
。比如说,

def check_kwargs(kwargdict, requiredargs):
    for r in requiredargs:
        assert r in kwargdict.keys()

requiredargs
将是一个iterable,其中包含需要出现的参数的名称。您还应该从对
check_kwargs
的调用中删除
**
,因为这没有任何意义。

那么问题出在哪里?
提出适当的错误
是相当模糊的-对我来说,
键错误
(如此简单的EAFP方法)如果“适当的错误”非常好的话.那么问题是什么呢?
提出适当的错误
是相当模糊的-对我来说,
关键错误
(如此简单的EAFP方法)如果“适当的错误”非常好。requiredargs我应该手动提供吗?因为我想在任何函数中使用check_kwargs来检查kwargs..@gamer,好的,我看到问题了。据我所知,不能仅基于方法体强制签名。您可以查看Python的
inspect
模块中的方法,以及
签名
参数
类。requiredargs我应该手动提供吗?因为我想在任何函数中使用check_kwargs来检查kwargs..@gamer,好的,我看到问题了。据我所知,不能仅基于方法体强制签名。您可以查看Python的
inspect
模块中的方法,以及
签名
参数
类。