早上好,
有人可以建议,是否有可能实现这样的目标:
def myFunction(someParam)
if someParam == 1:
return "This and that"
else:
return None
someVariable = someVariable || myFunction(valuePassedIn)
即,给定“someVariable”具有现有值,我想保留该值,或者将其替换为“myFunction”返回的值,前提是该值不是None?
显然,我可以这样做:
if myFunction(valuePassedIn) != None:
someVariable = myFunction(valuePassedIn)
但这当然是两次调用myFunction。或者,我可以这样做:
myFuncRes = myFunction(valuePassedIn)
if MyFuncRes != None:
someVariable = myFuncRes
但是,如果我可以将其减少为单行代码,那将是很好的,因为我的“||”在上面的第一个代码段中的行。显然我见过conditional expressions documentation,但除非我误解,否则这仍然需要两次调用myFunction
?
我猜另一种选择是将someVariable
作为额外的参数传递给myFunction
并将其用作“其他”返回而不是“无”,但我不禁感到这是有点凌乱 - 而且Python可能会有一些我可以使用的更光滑的东西?
由于
答案 0 :(得分:3)
是的,你可以这样做
请检查以下代码
>>> a = 1
>>> def test(b):
... return b*10
...
>>> c = a or test(2)
>>> c
1
>>> a = 0
>>> c = a or test(2)
>>> c
20