.after() 方法递归
.after() method recursion
多次遇到类似的代码结构,当我在 threading.Thread
实现中看到它时,我只想问一下 self.master.after(100, self.periodicCall)
行会不会消耗越来越多的内存是一个递归函数调用...是的,不是吗?
class arbitraryClass():
def __init__(self, master):
... # other miscellaneous codes not shown here
self.periodicCall() # within the __init__() method
def periodicCall(self):
self.doSomething() #arbitrary method
self.master.after(100, self.periodicCall)
... # other miscellaneous codes not shown here
periodicCall
方法不直接调用自身;这不是递归调用。
它请求tkinter事件循环在给定时间内调用该方法;无需担心内存消耗。
该方法不是递归的。
每次调用 after() 回调仅 运行 一次。重复调用需要在自身内部重新注册回调
多次遇到类似的代码结构,当我在 threading.Thread
实现中看到它时,我只想问一下 self.master.after(100, self.periodicCall)
行会不会消耗越来越多的内存是一个递归函数调用...是的,不是吗?
class arbitraryClass():
def __init__(self, master):
... # other miscellaneous codes not shown here
self.periodicCall() # within the __init__() method
def periodicCall(self):
self.doSomething() #arbitrary method
self.master.after(100, self.periodicCall)
... # other miscellaneous codes not shown here
periodicCall
方法不直接调用自身;这不是递归调用。
它请求tkinter事件循环在给定时间内调用该方法;无需担心内存消耗。
该方法不是递归的。
每次调用 after() 回调仅 运行 一次。重复调用需要在自身内部重新注册回调