为什么在将变量附加到列表时出现“'str' object is not callable”?
Why do I get " 'str' object is not callable" when appending variables to a list?
我创建了一个函数,它创建一个空列表,并将另一个列表中的值赋给一个变量。然后代码应该在每次调用函数时将变量的值附加到列表中。该函数放置在一个 while 循环中,因此它应该继续追加。但是在添加第一个元素后,我收到一条错误消息,告诉我该字符串对象不可调用。代码如下。我需要这个来进行模拟考试。有什么想法吗?:
def tracker():
global tracker
global trackerresult
trackerresult = []
tracker = opposite1[decider]
trackerresult.append(tracker)
print(trackerresult)
结果:
Traceback (most recent call last):
File "C:\Users\Timic\Downloads\Python Opposites Prorgam (1).py", line 47, in <module>
tracker()
TypeError: 'str' object is not callable
您在 tracker
全局变量和 tracker
函数之间存在名称冲突。当你 运行 def tracker(): ...
时,它将变量 tracker
设置为一个函数对象。当您随后第一次调用 tracker
函数时,它会修改全局变量 tracker
以明确指向 opposite1[decider]
的结果,这是一个字符串。下一次调用 tracker
函数的尝试失败,因为该函数已被字符串覆盖。
我创建了一个函数,它创建一个空列表,并将另一个列表中的值赋给一个变量。然后代码应该在每次调用函数时将变量的值附加到列表中。该函数放置在一个 while 循环中,因此它应该继续追加。但是在添加第一个元素后,我收到一条错误消息,告诉我该字符串对象不可调用。代码如下。我需要这个来进行模拟考试。有什么想法吗?:
def tracker():
global tracker
global trackerresult
trackerresult = []
tracker = opposite1[decider]
trackerresult.append(tracker)
print(trackerresult)
结果:
Traceback (most recent call last):
File "C:\Users\Timic\Downloads\Python Opposites Prorgam (1).py", line 47, in <module>
tracker()
TypeError: 'str' object is not callable
您在 tracker
全局变量和 tracker
函数之间存在名称冲突。当你 运行 def tracker(): ...
时,它将变量 tracker
设置为一个函数对象。当您随后第一次调用 tracker
函数时,它会修改全局变量 tracker
以明确指向 opposite1[decider]
的结果,这是一个字符串。下一次调用 tracker
函数的尝试失败,因为该函数已被字符串覆盖。