mat*_*ste 7 python sum callable python-2.7
我想弄清楚为什么我在一个范围上使用sum函数时会出现错误.
这是代码:
data1 = range(0, 1000, 3)
data2 = range(0, 1000, 5)
data3 = list(set(data1 + data2)) # makes new list without duplicates
total = sum(data3) # calculate sum of data3 list's elements
print total
这是错误:
line 8, in <module> total2 = sum(data3)
TypeError: 'int' object is not callable
我找到了错误的解释:
在Python中,"可调用"通常是一个函数.该消息意味着您正在处理一个数字(>"int"),就好像它是一个函数("可调用"),因此Python不知道该怎么做,所以它>停止.
我还读到sum()能够在列表中使用,所以我想知道这里出了什么问题?
我刚刚在IDLE模块中尝试过,它工作正常.但是,它在python解释器中不起作用.关于如何做的任何想法?
Joh*_*ooy 19
您可能将"sum"函数重新定义为整数数据类型.所以它正确地告诉你,整数不是你可以传递范围的东西.
要解决此问题,请重新启动解释器.
Python 2.7.3 (default, Apr 20 2012, 22:44:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> data1 = range(0, 1000, 3)
>>> data2 = range(0, 1000, 5)
>>> data3 = list(set(data1 + data2)) # makes new list without duplicates
>>> total = sum(data3) # calculate sum of data3 list's elements
>>> print total
233168
如果你sum隐藏内置,你可以得到你看到的错误
>>> sum = 0
>>> total = sum(data3) # calculate sum of data3 list's elements
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
另外,请注意,sum在set没有必要将其转换为a的情况下可以正常工作list
lvc*_*lvc 17
这意味着您的代码中的其他位置,您可以使用以下内容:
sum = 0
这阴影内建的总和(这是调用)与一个int(这是不是).
| 归档时间: | 
 | 
| 查看次数: | 96611 次 | 
| 最近记录: |