我的建议是使用一个函数。但是不要像
if可能会尝试将in放入函数那样,而是这样做:
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, printelse: verboseprint = lambda *a: None # do-nothing function
(是的,您可以在
if语句中定义一个函数,只有在条件为true时才会被定义!)
如果您使用的是Python 3,则其中
from __future__import print_function),则更为简单:
verboseprint = print if verbose else lambda *a, **k: None
这样,如果关闭了详细模式(使用lambda),则该函数被定义为“不执行任何 *** 作”,而不是不断测试该
verbose标志。
如果用户可以 在 程序 运行期间
更改详细模式,则这将是错误的方法(您需要
if在函数中使用),但是由于您是使用命令行标志设置的,因此您只需要一次做决定。
然后,您可以
verboseprint("look at all my verbosity!", object(),3)在每次要打印“详细”消息时使用例如。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)