python中的计时器对象
我还是在努力解决一些问题,尽管它可能比我上一篇文章中提到的二进制数组要简单一些。基本上,我创建了一个带有函数名的计时器对象。然而,我一直遇到一个问题,因为它说我调用的函数没有在Name Error下定义python中的计时器对象,python,multithreading,timer,Python,Multithreading,Timer,我还是在努力解决一些问题,尽管它可能比我上一篇文章中提到的二进制数组要简单一些。基本上,我创建了一个带有函数名的计时器对象。然而,我一直遇到一个问题,因为它说我调用的函数没有在Name Error下定义 class DrawBot(): waitingt = Timer(30.0, lockmap) ... def onlockmap(self, user): self.onBackup(user, "lockmapbackup") wai
class DrawBot():
waitingt = Timer(30.0, lockmap)
...
def onlockmap(self, user):
self.onBackup(user, "lockmapbackup")
waitingt.start()
def lockmap():
onrestoremap("lockmapbackup")
NameError: name 'lockmap' is not defined
lockmap()
是DrawBot()
的一部分,因此如果您单独调用它,您将得到一个NameError
尝试使用引用类的self
调用它:
waitingt = Timer(30.0, self.lockmap)
lockmap()
是DrawBot()
的一部分,因此如果您单独调用它,您将得到一个NameError
尝试使用引用类的self
调用它:
waitingt = Timer(30.0, self.lockmap)
因为它在你得到实际定义之前是没有定义的。另外,您可能不希望在类的每个实例中共享一个计时器。。。请尝试以下方法:
class DrawBot():
def __init__(self):
self.waitingt = Timer(30.0, self.lockmap)
...
def onlockmap(self, user):
self.onBackup(user, "lockmapbackup")
self.waitingt.start()
def lockmap(self):
onrestoremap("lockmapbackup")
因为它在你得到实际定义之前是没有定义的。另外,您可能不希望在类的每个实例中共享一个计时器。。。请尝试以下方法:
class DrawBot():
def __init__(self):
self.waitingt = Timer(30.0, self.lockmap)
...
def onlockmap(self, user):
self.onBackup(user, "lockmapbackup")
self.waitingt.start()
def lockmap(self):
onrestoremap("lockmapbackup")
我认为您需要在此处使用
self.lockmap
。我认为您需要在此处使用self.lockmap
。self
引用实例,但如果实例没有名称,查找算法也会搜索该类。这确实应该有一个类实例的计时器实例,而不是类级实例。啊,谢谢。我从未见过Timer
类,所以我只是认为这是一个一般性错误…self
引用实例,但是如果实例没有名称,查找算法也会搜索该类。这确实应该有一个类实例的计时器实例,而不是类级实例。啊,谢谢。我从未见过定时器类,所以我只是认为这是一个一般性错误。。。