Python条件变量赋值

时间:2014-11-28 09:15:14

标签: python variables conditional-statements variable-assignment

早上好,

有人可以建议,是否有可能实现这样的目标:

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可能会有一些我可以使用的更光滑的东西?

由于

1 个答案:

答案 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