Питонический способ инициализации логического

#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]