Python 2.7中是否需要此函数?还是没有必要?

Python 2.7中是否需要此函数?还是没有必要?,python,tkinter,Python,Tkinter,我看到的代码如下所示: from Tkinter import * def main(): root = Tk() root.geometry("250x150+300+300") root.title("GUI") root.mainloop() 但是为什么他们要把它写在函数中呢?你不能通过输入这个来做同样的事情吗 from Tkinter import * root = Tk() root.geometry("250x

我看到的代码如下所示:

from Tkinter import *    
def main():
        root = Tk()
        root.geometry("250x150+300+300")
        root.title("GUI")
        root.mainloop()
但是为什么他们要把它写在函数中呢?你不能通过输入这个来做同样的事情吗

from Tkinter import *
root = Tk()
root.geometry("250x150+300+300")
root.wm_iconbitmap(r'c:/Python33/DLLs/txteditor.ico')
app = txtEditor(root)
root.mainloop()

不确定这是否是一个好问题,如果不是,我理解我将删除它。但我对Python有些陌生,只是经常看到这一点,但不明白为什么?任何帮助都将不胜感激:-

有时导入脚本非常有用,以便您可以测试甚至使用其中的一些函数。如果你的主要功能是在一个函数中,这是很容易做到的


但是,如果简单地导入脚本也会执行主函数,那么这不是很有用。

在您的情况下,在预定义函数名main中包装代码的主要目的是,当您的文件被其父脚本导入时,这样定义的函数将用作入口点

正如Ethan Furman所说,封装在函数中的代码只能在需要时调用,因为代码分散在函数外,第二个示例在导入后立即执行


此外,您的第一个代码段比第二个代码段更清晰、更易懂。

通用函数定义:当您看到代码的某些部分被重复时,请定义函数iff。感谢您的解释!但是,当您的文件被其父脚本导入时,您的意思是什么?对于初学者的问题,我很抱歉,但我只是想知道上面的代码是否在tinker_app.py中,看看入口点函数main的名称,它首先是由其他脚本导入的,假设tinker_loader.py。在本例中,tinker_loader.py是父脚本或更好的脚本,即使称为主脚本也是如此。遵循此链接,与您的场景略有不同,但应该满足您的好奇心。