Saran saya adalah menggunakan suatu fungsi. Tetapi alih-alih memasukkan if
fungsi, 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 if
pernyataan, dan itu hanya akan ditentukan jika kondisinya benar!)
Jika Anda menggunakan Python 3, di mana print
sudah menjadi fungsi (atau jika Anda ingin menggunakan print
sebagai 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 verbose
flag.
Jika pengguna dapat mengubah mode verbositas selama menjalankan program Anda, ini akan menjadi pendekatan yang salah (Anda memerlukan if
fungsi 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".