Moja sugestia to użycie funkcji. Ale zamiast umieszczać funkcję if
w funkcji, o którą możesz się kusić, zrób to w następujący sposób:
if verbose:
def verboseprint(*args):
for arg in args:
print arg,
print
else:
verboseprint = lambda *a: None
(Tak, możesz zdefiniować funkcję w if
instrukcji, a zostanie ona zdefiniowana tylko wtedy, gdy warunek jest prawdziwy!)
Jeśli używasz Pythona 3, gdzie print
jest już funkcją (lub jeśli chcesz użyć jej print
jako funkcji w wersji 2.x przy użyciu from __future__ import print_function
), jest to jeszcze prostsze:
verboseprint = print if verbose else lambda *a, **k: None
W ten sposób funkcja jest definiowana jako nic nie rób, jeśli tryb gadatliwy jest wyłączony (przy użyciu lambda), zamiast ciągłego testowania verbose
flagi.
Gdyby użytkownik mógł zmienić tryb oznajmiania podczas wykonywania programu, byłoby to niewłaściwe podejście (potrzebowałbyś if
funkcji), ale ponieważ ustawiasz go flagą wiersza poleceń, musisz tylko podejmij decyzję raz.
Możesz wtedy użyć np. Zawsze, verboseprint("look at all my verbosity!", object(), 3)
gdy chcesz wydrukować "gadatliwą" wiadomość.