mrF*_*les -3 python python-3.x
在我的python中,我正在编写一个需要的函数**kwargs.我遇到的问题是我经常None作为关键字值传递,这感觉就像糟糕的风格.例如:
def foo(**kwargs):
if 'bar' in kwargs:
return kwargs['bar']
def baz(x=None):
print(foo(bar=x))
Run Code Online (Sandbox Code Playgroud)
这里的问题是,如果x是None,那么我希望它只是不打印.kwargs如果关键字参数为None,如何将其添加到关键字参数中?
如果None不是可接受的值,请测试.要么不传递x的baz(),如果是None,或者明确地测试None中foo.您可以为键和值没有被合并的测试None,使用dict.get():
def foo(**kwargs):
bar = kwargs.get('bar')
if bar is not None:
return bar
# return something else
Run Code Online (Sandbox Code Playgroud)
或者只是使用条件表达式来返回默认值,如空字符串:
def foo(**kwargs):
bar = kwargs.get('bar')
return bar if bar is not None else ''
Run Code Online (Sandbox Code Playgroud)
或者返回任何false-y值的默认值(None,空列表0等):
def foo(**kwargs):
return kwargs.get('bar') or ''
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
336 次 |
| 最近记录: |