5

我在python中遇到了一行:

def somefunc:
    [...]

if __name__ == '__main__':
    somefunc

我不明白“if __name ...”的作用。

假设我们有:

if __name__ == '__main__': main()

#this code will find main

那么这是否类似于 C/C++ 中的 main() 函数,它在任何其他函数之前执行?

4

2 回答 2

9

如果您直接执行脚本而不导入它,__name__将等于__main__. 但是如果你导入这个文件,__name__将等于导入它的模块的名称。此条件确保您从该文件执行代码。

于 2013-05-18T16:17:14.197 回答
1

您可以将其视为 C 中的 main() 或 perl 中的 BEGIN { } 块。

当您使用 python file1.py 运行代码时。

__name__在 file1.py 中等于'__main__',但在 file1.py 导入的其他文件中,变量是别的东西。

于 2013-05-18T16:15:26.983 回答