coinCount = [2 for i in range(4)]
total = sum(coinCount)
这给了我'廉政' 对象不是可调用
TypeError: 'int' object is not callable
我不明白为什么,因为
print type(coinCount)
给我
type <'list'>
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
就在您尝试调用它之前,您会看到,但代码检查可能会更快地显示它。
这种问题是为什么专家Pythonistas反复告诉新手“不要为自己的变量使用内建名称!”即使它显然不是伤害特定的代码片段:这是一个可怕的习惯,错误只是等待发生,如果你使用的标识符,如sum
,file
,list
等,作为自己的变量或函数 - )
我想补充一下Alex Martelli所说的不要使用sum作为变量名称,但如果你的程序已经太长了,或者你正在闲置,并且你不想重头开始可以做
sum2 = sum
del sum
到总和的价值转移到SUM2(如有必要),并删除该变量总和(允许你继续与求和函数工作)
经常推荐的替代方法是在标识符上加下划线后缀,否则这些标识符会与保留字和内置标识符相冲突;即'type_'或'sum_'或'from_'(如果你使用介词作为标识符)。 – cdleary 2010-03-17 07:21:17