Saran saya adalah menggunakan suatu fungsi. Tetapi alih-alih memasukkan iffungsi, yang mungkin Anda tergoda untuk melakukannya, lakukan seperti ini:
if verbose:
def verboseprint(*args):
for arg in args:
print arg,
print
else:
verboseprint = lambda *a: None
(Ya, Anda dapat menentukan fungsi dalam ifpernyataan, dan itu hanya akan ditentukan jika kondisinya benar!)
Jika Anda menggunakan Python 3, di mana printsudah menjadi fungsi (atau jika Anda ingin menggunakan printsebagai fungsi di 2.x menggunakan from __future__ import print_function) itu bahkan lebih sederhana:
verboseprint = print if verbose else lambda *a, **k: None
Dengan cara ini, fungsi didefinisikan sebagai tidak melakukan apa-apa jika mode verbose tidak aktif (menggunakan lambda), alih-alih terus-menerus menguji verboseflag.
Jika pengguna dapat mengubah mode verbositas selama menjalankan program Anda, ini akan menjadi pendekatan yang salah (Anda memerlukan iffungsi in), tetapi karena Anda menyetelnya dengan panji baris perintah, Anda hanya perlu buat keputusan sekali.
Anda kemudian menggunakan mis verboseprint("look at all my verbosity!", object(), 3)kapan pun Anda ingin mencetak pesan "verbose".