.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() 回调仅 运行 一次。重复调用需要在自身内部重新注册回调