I mają tendencję do korzystania z tego dużo, ale jest brzydki:Najlepszy sposób na przypisanie warunkowej w Pythonie
a = (lambda x: x if x else y)(get_something())
Więc napisałem tę funkcję:
def either(val, alt):
if val:
return val
else:
return alt
Więc można zrobić:
a = either(get_something(), y)
Czy jest do tego wbudowana funkcja (podobna do ISNULL w T-SQL)?
Dzięki. Ha, próbowałem tego, ale odrzuciłem, gdy próbowałem "a = 0 lub None", a konsola nic nie wydrukowała. Ale próba "a to None" po tym daje "True", a dodatkowo chcę funkcji "None or 0" w każdym razie (spóźnienie) :) Przy okazji, dziękuję za szybką odpowiedź. – crizCraig
Tylko dla rekordu, jeśli chcesz łańcuch operatora "i", oceni on do najbardziej prawicowego argumentu, który konwertuje na True, jeśli wszystkie argumenty lub lewy-najwyższy argument, który konwertuje na False, jeśli którykolwiek konwertuje na False. –
"a = 0 lub Brak" Cóż, oczywiście konsola niczego nie wydrukuje, przypisujesz wynik '0 lub Brak' do' a', a zmienne z przypisanymi do nich 'Brak' nie wyświetlają się automatycznie 'Brak', gdy pokazano na konsoli. Musisz użyć 'repr',' str' lub 'print'. Czy coś takiego. – JAB