简言之,__name__
是为每个脚本定义的变量,以定义脚本是作为主模块运行还是作为导入模块运行。
如果我们有两本脚本,
#script1.py
print "Script 1's name: {}".format(__name__)
和
#script2.py
import script1
print "Script 2's name: {}".format(__name__)
执行脚本1 的输出为
Script 1's name: __main__
执行脚本2 的输出为 :
Script1's name is script1
Script 2's name: __main__
如你所见__name__
告诉我们哪个代码是“ main” 模块。 这很棒, 因为您可以只写代码, 而不必担心 C/ C++ 中的结构问题, 如果一个文件不执行“ main” 函数, 那么它无法编译为可执行文件, 如果它可以, 那么它就不能用作图书馆 。
说您会写出一个 Python 脚本,该脚本能做一些伟大的事情,而您会执行一系列用于其他目的的功能。如果我想使用这些功能,我可以在不执行您的程序的情况下导入并使用您的脚本(因为您的代码仅在if __name__ == "__main__":
在 C/C++ 中,您需要将这些部分分割成一个单独的模块, 包括文件。 图片如下:
箭头是导入链接。 对于试图包含前一个模块代码的3个模块,每个模块有6个文件(9个,计算执行文件)和5个链接。这使得将其他代码纳入 C 工程很难,除非它是专门编译成一个库。 现在为 Python 绘制它:
你写一个模块, 如果有人想使用你的代码, 他们只是导入它和__name__
变量可以帮助将程序的可执行部分与库部分分开。