Утреннее все,Python условное присвоение переменной
Может кто-то посоветовать, можно добиться чего-то вроде этого:
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
и использовать это как «другое» возвращение вместо None, но я не могу избавиться от ощущения, что это своего рода грязный - и Python, вероятно, имеет что-то более гладкое, что я мог бы использовать?
Благодаря
Заметим, что 'если someParam = 1' в вашем' myFunction' фактически делает задание, а не сравнение , – Wieland
@Wieland было бы, если бы это не было 'SyntaxError' –
Извините, опечатка с моей стороны .... Отредактировано;) –