关于python:导入在main()函数中具有所有函数的模块

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

我读了下面给出的答案:

为什么使用def main()?

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

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

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

编辑:所以如果我理解的话,请告诉我,我们没有将任何实际函数放在main()中,它们是独立的函数。唯一能进入它内部的东西是它的__main__部分?例如:

test.py程序:

1
2
3
4
5
6
7
def my_function():
    print('Hello')

def my_function2(num):
    return num*num

print('Hi')

改性test.py

1
2
3
4
5
6
7
8
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()typically调用其他函数,但并不包含它们。你的其他函数将一个在体部以上的main()脚本和可以被称为在标准的方式。 </P >

所以你的test.py实例可以查找这类: </P >

1
2
3
4
5
6
7
8
9
10
11
12
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()


你呼叫的函数,你想执行在块的下面。该函数是assumed是已定义的,在顶你的模块 </P >

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