私の提案は、関数を使用することです。しかしif、あなたがやりたくなるような関数にを置くのではなく、次のようにします。
if verbose:
def verboseprint(*args):
# Print each argument separately so caller doesn't need to
# stuff everything to be printed into a single string
for arg in args:
print arg,
print
else:
verboseprint = lambda *a: None # do-nothing function
(はい、関数を ifステートメントで。条件がtrueの場合にのみ定義されます!)
Python 3を使用している場合、printは既に関数です(またはprint、2.xで関数として使用したい場合from __future__ import print_function)はさらに簡単です。
verboseprint = print if verbose else lambda *a, **k: None
この方法では、verboseフラグを常にテストするのではなく、冗長モードがオフの場合(ラムダを使用)、関数は何もしないと定義されます。
プログラムの実行中にユーザーが詳細モードを変更できる場合、これは間違ったアプローチになります(if関数にが必要です)が、コマンドラインフラグで設定しているため、一度決定してください。
次に、たとえばverboseprint("look at all my verbosity!", object(), 3)「冗長」メッセージを出力するときに使用します。