#python #initialization #boolean
#python #инициализация #логическое
Вопрос:
Является ли это лучшим / наиболее питоническим способом инициализации логического значения для этой цели?
if start == today:
b = date_time_obj <= start
else:
b = date_time_obj < start
if b:
do_something()
Я не могу придумать другого способа сделать это. Заранее спасибо.
Комментарии:
1. Спасибо за ваш комментарий. Я хочу запускаться
b
независимо от того, какова связь междуstart
иdate_time_obj
, поэтому этот бит не важен. В любом случае первого if / else оператор < всегда будет присутствовать, поэтому я подумал, что может быть более быстрый способ инициализацииb
.2. Если под «быстрее» вы подразумеваете «короче», то, вероятно, есть. Будет ли это более читабельным? Скорее всего, нет. Если под «быстрее» вы подразумеваете «более быстрое время выполнения», то это должно быть наименьшей из ваших забот.
Ответ №1:
Вероятно, более распространенным является:
b = date_time_obj <= start if start == today else date_time_obj < start
Ответ №2:
И если вы действительно хотите немного повеселиться, попробуйте
b = (date_time_obj < start, date_time_obj <= start)[start == today]