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-哇,那太愚蠢了。已修复。:)我真是个傻瓜。感谢您的快速回复。正是这些愚蠢的错误让您无法发现自己,也让其他人很容易发现。我很感激您给了这个问题一个易于搜索的标题,以便未来的用户能够引用这个问题。我真是个傻瓜。感谢您的快速回复。正是这些愚蠢的错误让您无法发现自己,也让其他人很容易发现。我很感激您为这个问题提供了一个易于搜索的标题,以便未来的用户能够参考这个问题。