从函数中打印bool值是一个好习惯吗?

时间:2013-09-24 21:51:37

标签: python python-3.x

def f():
    return True

print(f())

def f():
    return True

if f():
    print('True')
else:
    print('False')

我应该在if语句中对它进行舍入,还是只是在Python 3.3.2中打印出来的值?

3 个答案:

答案 0 :(得分:3)

print自动将输入转换为其字符串表示形式。所以,这两种方法实际上完全相同。考虑到这一点,为什么不使用第一个呢?它更清洁。

此外,第二种方法可以真正简化:

print('True' if f() else 'False')

没有必要为那么简单的代码提供那么多代码。

答案 1 :(得分:1)

如果您的函数始终返回bool,则只需打印它,如下所示:

print(f())

如果您需要将其转换为字符串而不打印它,请使用str(f())repr(f())。对于bool类型,这两个是等价的,但是例如如果他们的参数是str,则它们是不同的:repr(str_obj)会正确地引用并转义它。

如果它不总是bool,但您想根据其真实值打印某些内容,请使用if,就像您的问题或iCodez的回答一样。或者,您可以将其转换为bool,然后将其打印出来:

print(bool(f()))

答案 2 :(得分:0)

就个人而言:

print(f())

表单看起来更好。但是,需要考虑的一件事是,您已经调用了一个调用来打印本质上是调试输出的调用,该调用导致调用该功能。当你准备好在你的程序上构建时,当你想要关闭所有烦人的print语句时,这会让你很痛苦。

您可以使用以下功能:

LOGGING_ENABLED = True

def print_if(my_bool):
    if LOGGING_ENABLED:
        print str(my_bool)

这将确保始终调用该函数,但只有在您需要时才会发生调试输出。