Нет реальной причины для этого, поскольку условные выражения уже поставляются с помощью оператора if
:
if a == True:
print 1
Но, если вы просто просите веселье , ответ будет , вы не можете на самом деле. Чтобы остановить выполнение содержимого with
, conditional
необходимо каким-то образом остановить выполнение в его методе __enter__
. Но единственный способ сделать это - вызвать исключение, что означает, что никакой другой код не будет запущен, если вы не заключите with
в оператор try
для обработки случаев a != True
Редактировать: видя, что меня обвиняют в комментариях и голосованиях за использование условия ОП (a == True
), я подумал об изменении его на if a
, что, конечно, идиома в Python для тестирования условных выражений , Но мы не знаем , что имел в виду ОП, и действительно ли он хочет, чтобы a
был логическим значением, и не хочет, чтобы блок выполнялся, если a = [1]
(который пройдет if a
) Я решил оставить все как есть.