Я столкнулся с вопросом Python Challenge с объявлением переменной, которое я не понял. Он запрашивал вывод этого кода.
a = "abcd"
b = "abc"
func = (lambda s:s[1:]) or (lambda s:s[:-1])
print(func(b))
Я в значительной степени проигнорировал вторую лямбду и получил правильный ответ:
"bc"
Мои вопросы: каково практическое использование "или" при присвоении переменных между лямбда-функциями? И как мне получить доступ ко второй лямбда в выражении "или"? Каким будет пример вызова второй лямбда-функции?
Примечание. Мой вопрос отмечен как дубликат. Другой вопрос и ответ предоставили отличную информацию и дополнительные знания, связанные с моей темой. Однако этот вопрос касается возвращаемых значений и общих утверждений. Я думаю, что мой вопрос отличается тем, что он имеет дело с переменным присваиванием, а не с возвращаемыми значениями, и с применением "или" к функциям, которые я не вижу в другом вопросе. Мне все еще хотелось бы разъяснить концепцию правды или значений ложности, применяемых к лямбда-функции.
Давайте посмотрим на это:
a = None or 1
b = 'ABC' or None
c = None or True
d = 'F' or 'Z'
e = 1 or 2
f = None or None or 5
g = False or None or True
h = 1==2 or 'T'
Запустите вывод для каждой переменной, и вы увидите, что переменные присваиваются с первым значением, если оно не является False/None.