需要python中的嵌套函数

时间:2013-11-30 04:46:05

标签: python

我熟悉c / c ++和python的新手,我想知道python中嵌套函数的需求是什么。任何人都可以给我们使用嵌套函数的实例。提前谢谢。

2 个答案:

答案 0 :(得分:4)

您的问题过于宽泛,因此可能会被关闭,但有两个例子是DecoratorsClosures

答案 1 :(得分:3)

当你想使用辅助函数(并且你不想提供参数)时,特别是对于线程:

import Tkinter as tk
import thread

def main():
    root = tk.Tk()
    progress_var = tk.StringVar(root)
    progress_var.set('')
    progress = tk.Label(root, textvariable = progress_var)
    progress.pack()
    def thread_helper(): # this can access the local variables in main()
        total = 10000000
        for i in xrange(1, total + 1):
             progress_var.set('Progress: {}%'.format(100 * float(i)/total))
    thread.start_new_thread(thread_helper, ())
    root.mainloop()

这基本上是在窗口中显示for循环的进度。在root.mainloop()之后,没有进程会运行,因此我需要使用一个线程来实际启动for循环,并更新进度显示。

该线程需要调用一个函数,并且更容易定义一个辅助函数(嵌套并只使用一次),而不是创建一个新函数并将其传递给各种参数。