这只是一个“好的”pythonic方式的好奇问题。
我有一个带有可选参数的函数,即。
def foo( a, b, c='en' ):
print c
有一个包含一堆信息的字典,如果字典中有特定的键,我想将它传递给 foo 以覆盖 c 的默认值,但如果键不在字典中,我只想使用c的默认值。
显然这会起作用......
if "SomeKey" in mydict:
foo( val1, val2, mydict[ "SomeKey" ]
else:
foo( val1, val2 )
另一种选择是做类似的事情
params = [ val1, val2 ]
if "SomeKey" in mydict:
params.append( mydict[ "SomeKey" ] )
foo( *params )
但是必须有一种巧妙的,更蟒蛇的方式来做到这一点?IE。
foo( val1, val2, mydict[ "SomeKey" ] if "SomeKey" in mydict else < use default > )
提前致谢!