导入在 main() 函数中具有所有功能的模块

Importing modules that have all its functions inside a main() function

我阅读了下面给出的答案:

Why use def main()?

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

但是同时,当我把我所有的函数都放在main()里面并且我想把它导入到另一个程序中时,我该如何调用所有这些函数呢?

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

编辑:如果我理解了请告诉我,我们没有在 main() 中放置任何实际函数,它们是独立的函数。唯一会进入其中的是 __main__ 部分?例如:

计划test.py

def my_function():
    print('Hello')

def my_function2(num):
    return num*num

print('Hi')

已修改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')

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

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()

您在下面的块中调用要执行的函数。假设这些函数已经在您的模块顶部定义

if __name__=="__main__":
    call your functions you want to execute