Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的计时器对象_Python_Multithreading_Timer - Fatal编程技术网

python中的计时器对象

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

我还是在努力解决一些问题,尽管它可能比我上一篇文章中提到的二进制数组要简单一些。基本上,我创建了一个带有函数名的计时器对象。然而,我一直遇到一个问题,因为它说我调用的函数没有在Name Error下定义

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
引用实例,但是如果实例没有名称,查找算法也会搜索该类。这确实应该有一个类实例的计时器实例,而不是类级实例。啊,谢谢。我从未见过
定时器类,所以我只是认为这是一个一般性错误。。。