在python中使用short-hand if-then-else控制日志

时间:2015-10-23 23:31:42

标签: python

我正在尝试使用简写if (rstudio) rstudio::viewer(tempfile) else browseURL(tempfile)控制我的日志,因为它在单行中看起来很优雅,但我注意到我还需要实现if-else流程。

else

如果我将Class MyClass(object): def __init__(self, parent): self.log_enabled = False # To enable/disable logs ... def test(self): ... print "Command is being executed..." if self.log_enabled == True else pass ... 放在pass,那么这是一个错误。有没有办法干净地实现这个,使用else或其他方法?

2 个答案:

答案 0 :(得分:2)

你告诉它要打印什么。 pass不是您可以打印的内容。但是,您可以打印空字符串。

print "Command is being executed..." if self.log_enabled else '',

然而,看起来你只是想把一个三元运算符塞进你的代码中,这样的策略会让你的代码明显变差。只需使用传统结构:

if self.log_enabled:
    print "Command is being executed..."

答案 1 :(得分:1)

def log_it(self, message, *args):
    if self.log_enabled:
        print message % args

def test(self):
    log_it("Command is being executed...")
    log_it("A number less than 3 and greater than 1 is %d", 2)

但是如果这是一个非平凡的项目,你应该只使用常规的python日志记录类。