В троичном условном операторе в первую очередь выполняется оценка состояния.Из ваших примеров нет никакой разницы в значимости между оценкой условия и оценкой того же условия, а затем отрицанием его.
При этом в обоих случаях при условии, что условие равно True
, Func1()
будетбудет выполняться, поэтому оба оператора будут занимать одинаковое количество времени.
Редактировать:
Доказательство
ВотДоказательство того, что я сказал:
from time import sleep
def sleep5():
print("Sleeping for 5 secs")
sleep(5)
def sleep1():
print("Sleeping for 1 sec")
sleep(1)
def true_condition():
print("Evaluating condition")
return True
sleep1() if true_condition() else sleep5()
'''prints:
Evaluating condition
Sleeping for 1 sec
then waits for 1 second'''
sleep5() if not true_condition() else sleep1()
'''prints:
Evaluating condition
Sleeping for 1 sec
then waits for 1 second'''
sleep1() if not true_condition() else sleep5()
'''prints:
Evaluating condition
Sleeping for 5 secs
then waits for 5 seconds'''
Первые 2 троичных условия эквивалентны вашим условным выражениям.Последний иллюстрирует, когда другая функция называется