>>> bool(datetime(2018, 1, 1).time())
False
>>> bool(datetime(2018, 1, 1, 13, 12, 11).time())
True
До Python 3.5 объекты
datetime.time() считались ложными, если они представляли полночь по UTC. Это могло приводить к трудноуловимым ошибкам. В следующих примерах if not может выполниться не потому, что created_time равен None, а потому, что время — полночь.
def create(created_time=None) -> None:
if not created_time:
created_time = datetime.now().time()
Можно исправить это, явно проверяя на
None:
def create(created_time=None) -> None:
if created_time is None:
created_time = datetime.now().time()
📲 Мы в MAX
👉@BookPython