Python TypeError浮点不可调用
下面是一个简短的程序,它给了我一个我很难理解的错误:Python TypeError浮点不可调用,python,typeerror,Python,Typeerror,下面是一个简短的程序,它给了我一个我很难理解的错误: import time TIMEOUT_LENGTH = 0.4 TIMEOUT_CHECK = False STOPPED = True timeout = 0.0 def start_timer(): global timeout global STOPPED global TIMEOUT_CHECK TIMEOUT_CHECK = False STOPPED = False timeo
import time
TIMEOUT_LENGTH = 0.4
TIMEOUT_CHECK = False
STOPPED = True
timeout = 0.0
def start_timer():
global timeout
global STOPPED
global TIMEOUT_CHECK
TIMEOUT_CHECK = False
STOPPED = False
timeout = time.time() + TIMEOUT_LENGTH
def stop_timer():
global STOPPED
global TIMEOUT_CHECK
TIMEOUT_CHECK = False
STOPPED = True
def timeout():
global timeout
global STOPPED
global TIMEOUT_CHECK
currTime = time.time()
if (currTime > timeout) and (STOPPED == False):
TIMEOUT_CHECK = True
return TIMEOUT_CHECK
start_timer()
print timeout()
运行此命令可以让我:
Traceback (most recent call last):
File "prob.py", line 34, in <module>
print timeout()
TypeError: 'float' object is not callable
回溯(最近一次呼叫最后一次):
文件“prob.py”,第34行,在
打印超时()
TypeError:“float”对象不可调用
在我看来,我并不是在试图调用
currTime
或timeout
。这里发生了什么我不理解的事情?您不能同时拥有一个函数和另一个名为timeout
的变量。重命名其中一个
目前,首先将timeout
绑定到浮点值0.0
。然后通过定义timeout()
函数重新绑定它。最后但并非最不重要的一点是,通过调用start\u timer()
再次绑定timeout
,回到浮点数:
当您尝试执行
print timeout()
时,timeout
已绑定到浮点值,不再是函数。您不能同时拥有函数和另一个名为timeout
的变量。重命名其中一个
目前,首先将timeout
绑定到浮点值0.0
。然后通过定义timeout()
函数重新绑定它。最后但并非最不重要的一点是,通过调用start\u timer()
再次绑定timeout
,回到浮点数:
当您尝试执行
print timeout()
时,timeout
被绑定到一个浮点值,不再是一个函数。您创建了一个名为timeout
的函数,但随后覆盖该函数,并在此处将timeout
设为浮点:
timeout = time.time() + TIMEOUT_LENGTH
您需要更改函数的名称或浮点的名称。它们都不能命名为
timeout
您创建了一个名为timeout
的函数,但随后您将覆盖该函数,并在此处将timeout
设为浮点:
timeout = time.time() + TIMEOUT_LENGTH
您需要更改函数的名称或浮点的名称。它们都不能命名为
timeout
这不是字符串,而是浮点(time()
返回一个数字,他正在向其添加0.4
,另外,请查看异常文本)。但除此之外,解释得很好。@abarnert-哇,那太愚蠢了。已修复。:)它不是一个字符串,而是一个浮点(time()
返回一个数字,他正在向其中添加0.4
,另外,请查看异常文本)。但除此之外,解释得很好。@abarnert-哇,那太愚蠢了。已修复。:)我真是个傻瓜。感谢您的快速回复。正是这些愚蠢的错误让您无法发现自己,也让其他人很容易发现。我很感激您给了这个问题一个易于搜索的标题,以便未来的用户能够引用这个问题。我真是个傻瓜。感谢您的快速回复。正是这些愚蠢的错误让您无法发现自己,也让其他人很容易发现。我很感激您为这个问题提供了一个易于搜索的标题,以便未来的用户能够参考这个问题。