Я нашел следующую конструкцию сегодня в некотором elses-коде:
try: True, False
except NameError: True = 1==1; False = 1==0
Как я понимаю, он определяет True
и False
, если они уже не определены. Поэтому, если они определены, он не должен выбрасывать NameError
-Exception, правильно?
Я попробовал это для себя в оболочке, и он показывает мне SyntaxError: can't assign to keyword
Мой вопрос в том, почему он даже выстрелил в синтаксическую ошибку, если определены True и False? Если True и False доступны в моей системе, разве это не должно пройти мимо обработки исключений и не показывать синтаксическую ошибку?