TypeError:'int'对象不可调用python 2.7
问题描述:
我知道这个问题已被问了很多之前,但我似乎无法在我的代码中找到任何地方,我将我的列表绑定到一个整数值。我改变了所有的变量名称,但无济于事。TypeError:'int'对象不可调用python 2.7
这里是我运行的完整代码:
import sys
def powerset(a):
# returns a list of all subsets of the list a
if (len(a) == 0):
return [[]]
else:
allSubsets = [ ]
for subset in powerset(a[1:]):
allSubsets += [subset]
allSubsets += [[a[0]] + subset]
return allSubsets
if __name__ == '__main__':
no_test = int(sys.stdin.readline())
for i in xrange(no_test):
xor_res = 0
len = int(sys.stdin.readline())
numbers_array = map(int,sys.stdin.readline().split())
numbers = []
for i in numbers_array:
numbers.append(i)
maxset = powerset(numbers)
for set in maxset:
if len(set) != 0:
temp = 0
for i in set:
temp = temp^i
xor_res = xor_res^temp
print xor_res
,这是错误我得到:
Traceback (most recent call last):File "solution.py", line 24, in <module>maxset = powerset(numbers)File "solution.py", line 6, in powerset if (len(a) == 0):TypeError: 'int' object is not callable
有人能告诉我发生了什么事情错在这里? 谢谢!
答
您已经创建了一个名为len
变量阴影内置的功能len()
:
len = int(sys.stdin.readline())
当您尝试调用整个代码len
功能,解释找到len
变量第一和试图调用它就像一个功能。由于这是一个int
,这不能完成,我们看到了错误。
要解决您的问题,请将您的变量称为不同的东西。一般来说,避免使用“len”,“list”,“map”等名称来创建变量,因为使用这些名称会影响内置变量。
哦,我明白了,这很有道理。非常感谢! – Batman
@Batman如果此答案解决了您的问题,您可以通过单击投票计数器下的复选标记将其标记为已接受。我将不胜感激。 – ApproachingDarknessFish