Почему бы вам просто не изменить свою функцию вывода в зависимости от того, находится ли программа в тихом режиме, поэтому вы делаете проверку только один раз?
if QUIET:
def DoOutput(stuff):
pass
else:
def DoOutput(stuff):
print(stuff)
Или, конечно, вы можете поставить проверку для QUIET
внутри вашей функции вывода:
def DoOutput(stuff):
if QUIET:
print(stuff)
Ситуация, которую вы описали, на самом деле является одной из причин того, что Python 3 изменил print
с ключевого слова на фактическую функцию: большие проекты людей очень сильно зависели от print
, являющегося ключевым словом, а затем пришло время изменить способ записи, потребовался масштабный рефакторинг; тогда как когда print
является надлежащей функцией, вы можете просто переопределить ее, чтобы, например, print(foo)
выводил в файл журнала. Вот почему лучше обернуть вывод / запись в реальную функцию, а не разбрасывать print
по вашему сценарию.