Python A';列表';对象不可在十进制列表上调用
当我针对Python A';列表';对象不可在十进制列表上调用,python,list,python-2.7,fatal-error,Python,List,Python 2.7,Fatal Error,当我针对十进制列表调用sum时,我得到的“list”对象不可调用。请参见下面的命令行会话 >>> sys.version_info sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0) >>> d = map(Decimal, u'0.97 + .03'.split('+')) >>> d [Decimal('0.97'), Decimal('0
十进制
列表调用sum
时,我得到的“list”对象不可调用。请参见下面的命令行会话
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0)
>>> d = map(Decimal, u'0.97 + .03'.split('+'))
>>> d
[Decimal('0.97'), Decimal('0.03')]
>>> sum(d)
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'list' object is not callable
>>sys.version\u info
系统版本信息(主版本=2,次版本=7,微版本=3,最终版本=0)
>>>d=映射(十进制,u'0.97+.03'。拆分('+'))
>>>d
[十进制('0.97')、十进制('0.03')]
>>>总数(d)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“列表”对象不可调用
我正在使用python2.7.3
。sum(d)
的预期输出为1.00
我在Python网站上看到了它的工作原理 我怀疑前面的代码类型列表中有一个名为sum
的局部变量,这就是为什么会出现此错误。在python中,可以重新绑定任何内置函数。您仍然可以通过使用\uuu builtin\uu
模块调用内置函数sum
>>> sum = [] # override builtin sum function
>>> from decimal import Decimal
>>> d = map(Decimal, ['0.97', '0.03'])
>>> sum(d)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
>>> __builtins__.sum(d)
Decimal('1.00')
>>sum=[]#覆盖内置的sum函数
>>>从十进制输入十进制
>>>d=映射(十进制,['0.97','0.03'])
>>>总数(d)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“列表”对象不可调用
>>>_u____;u内置式____;总和(d)
十进制('1.00')
不过,我建议不要以内置函数或类型命名局部变量。捕获这些错误的一个好方法是在代码上运行Python静态代码检查器。某些编辑器或IDE允许轻松与pylint集成。我怀疑前面的代码类型列表中有一个名为sum
的局部变量,这就是为什么会出现此错误。在python中,可以重新绑定任何内置函数。您仍然可以通过使用\uuu builtin\uu
模块调用内置函数sum
>>> sum = [] # override builtin sum function
>>> from decimal import Decimal
>>> d = map(Decimal, ['0.97', '0.03'])
>>> sum(d)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
>>> __builtins__.sum(d)
Decimal('1.00')
>>sum=[]#覆盖内置的sum函数
>>>从十进制输入十进制
>>>d=映射(十进制,['0.97','0.03'])
>>>总数(d)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“列表”对象不可调用
>>>_u____;u内置式____;总和(d)
十进制('1.00')
不过,我建议不要以内置函数或类型命名局部变量。捕获这些错误的一个好方法是在代码上运行Python静态代码检查器。某些编辑器或IDE允许轻松与pylint集成。类型(sum)的计算结果是什么?>>类型(sum)
@Muquaddim——这是您的问题。您通过在某处创建同名列表来隐藏内置的sum
函数…看起来您在代码某处定义了一个变量名sum
。type(sum)的计算结果是什么?>>type(sum)
@Muquaddim——这是您的问题。您通过在某处创建同名列表来隐藏内置的sum
函数…看起来您在代码某处定义了一个变量名sum
。