coinCount = [2 for i in range(4)]
total = sum(coinCount)
这给了我
TypeError: 'int' object is not callable
我不明白为什么
print type(coinCount)
给了我。type <'list'>
你之前在代码中当地定义了一个名为sum
的局部变量,并将其绑定到一个int
值。在代码片段中,你试图调用这个int
。在尝试调用之前,可以使用print sum
查看一下,不过通过代码检查可能会更快地发现问题。
这种问题就是为什么专业Python程序员一遍又一遍地告诉新手们“不要使用内置名称作为自己的变量!”即使对特定的代码片段似乎没有影响:这是一个可怕的习惯,如果你使用sum
、file
、list
等标识符作为自己的变量或函数,那么这只是一个潜在的bug, 等待发生!-)
我想补充一下Alex Martelli所说的,不要使用sum作为变量名,但如果你的程序已经太长了或者你正在使用idle并且不想重新开始,你可以这样做:
sum2 = sum
del sum
将 sum 的值转移至 sum2(必要时),并删除变量 sum(以便您可以继续使用 sum 函数)。
type_
、sum_
或者from_
(如果你喜欢用介词作为标识符)。 - cdleary