Python绕过True作为方法参数抛出异常

时间:2014-04-09 23:02:35

标签: python exception

我有以下问题 - 为什么以下代码会在param2上抛出异常?:

def paramcheck(param1, param2):
    try:
        if param1:
            print('param1: ' + param1)
        if param2:
            print('param2: ' + param2)
    except:
        print('error')

paramcheck(False, True)

我正在使用python 3.4。

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您没有撤消错误消息,那么您会收到一条有用的消息:

>>> param1 = True
>>> print('param1: ' + param1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'bool' objects

正如错误所说,你不能在Python中用boole连接字符串。您必须手动转换布尔值:

print('param1: ' + str(param1))

或者您可以使用格式化运算符:

print('param1: %s' % (param1,))
print('param1: {}'.format(param1))