导入将所有功能都包含在 main() 函数中的模块

tad*_*123 1 python program-entry-point

我读了下面给出的答案:

为什么使用 def main()?

似乎更好的做法(?)main()在创建模块时将所有代码放入函数中以避免在导入时执行它。

但同时,当我将所有函数放入其中main()并想将其导入另一个程序时,我将如何调用所有这些函数?

这样做似乎适得其反,但显然我理解错误,所以我很感激我能得到的任何帮助。

编辑:如果我理解的话,请告诉我,我们不会在 main() 中放置任何实际的函数,它们是单独的函数。里面唯一的东西是它的部分__main__?例如:

程序test.py

def my_function():
    print('Hello')

def my_function2(num):
    return num*num

print('Hi')
Run Code Online (Sandbox Code Playgroud)

修改的test.py

def my_function():
    print('Hello')

def my_function2(num):
    return num*num

def main():    #so it doesn't execute when imported
    print('Hi')
Run Code Online (Sandbox Code Playgroud)

这是您使用的准确方式吗main()

Chr*_*nds 5

main()通常会调用您的其他函数但不包含它们。您的其他函数将位于上面脚本的主体中main(),并且可以以标准方式调用。

所以你的test.py例子可能看起来像这样:

def my_function():
    print('Hello')

def my_function2(num):
    return num*num

def main():
    my_function()
    my_function2(5)

if __name__ == "__main__": # if module not imported
    main()
Run Code Online (Sandbox Code Playgroud)