社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Peter Mortensen preetika monda

Peter Mortensen preetika monda 最近创建的主题
Peter Mortensen preetika monda 最近回复了
7 年前
回复了 Peter Mortensen preetika monda 创建的主题 » 如何使用uu name_uuuu==”uuuu main_uuu“来编写python脚本[副本]

简单地说, __name__ 是为每个脚本定义的变量,用于定义脚本是作为主模块运行还是作为导入模块运行。

如果我们有两个剧本;

#script1.py
print "Script 1's name: {}".format(__name__)

#script2.py
import script1
print "Script 2's name: {}".format(__name__)

执行script1的输出是

Script 1's name: __main__

执行script2的输出是:

Script1's name is script1
Script 2's name: __main__

如你所见, __姓名__ 告诉我们哪个代码是“主”模块。 这很好,因为您可以编写代码,而不必担心C/C++中的结构问题,如果文件没有实现“主”函数,那么它就不能编译成可执行文件,如果是,它就不能用作库。

假设您编写了一个Python脚本,它做了一些很好的事情,并且实现了大量的函数,这些函数对于其他目的很有用如果我想使用它们,我可以直接导入脚本并在不执行程序的情况下使用它们(假设您的代码只在 if __name__ == "__main__": 上下文)。而在C/C++中,你必须将这些部分分割成一个单独的模块,然后包含该文件。想象一下下面的情况;

Complicated importing in C

箭头是导入链接对于每个试图包含前面模块代码的三个模块,有六个文件(九个,包括实现文件)和五个链接。这使得很难将其他代码包含到C项目中,除非它是作为库专门编译的。现在为Python设想一下:

Elegant importing in Python

你编写一个模块,如果有人想使用你的代码,他们只需要导入它,然后 __姓名__ 变量可以帮助分离程序的可执行部分和库部分。