python检查函数中所需的KWARG
我只想检查所需的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
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
模块中的方法,以及签名
和参数
类。