Python中的执行模式
Python解释器执行代码有两种方式:
更多内容可参考如何运行Python脚本 。无论采用哪种方式,Python都会定义一个名为__name__的特殊变量 , 该变量包含一个字符串 , 其值取决于代码的使用方式 。
本文将如下示例文件保存为execution_methods.py,以 探索 代码如何根据上下文改变行为:
在此文件中,定义了三个对print()函数的调用 。前两个打印一些介绍性短语 。第三个print()会先打印短语The value __name__ is,之后将使用Python内置的repr()函数打印出__name__变量 。
在Python中,repr()函数将对象转化为供解释器读取的形式 。上述示例通过使用repr()函数来强调__name__的值为字符串 。更多关于repr()的内容可参考Python文档 。
在本文中,您将随处可见文件(file),模块(module)和脚本(script)这三个字眼 。实际上,三者之间并无太大的差别 。不过,在强调代码目的时,还是存在细微的差异:
“如何运行Python脚本”一文也讨论了三者的差别 。
基于命令行执行
在这类方法中,Python脚本将通过命令行来执行 。
执行脚本时,无法与Python解释器正在执行的代码交互 。关于如何通过命令行执行代码的详细信息对本文而言并不重要,但您可以通过展开下框阅读更多有关Windows,Linux和macOS之间命令行差异的内容 。
命令行环境
不同的操作系统在使用命令行执行代码时存在细微的差异 。
在Linux和macOS中,通常使用如下命令:
美元符号($)之前的内容可能有所不同,具体取决于您的用户名和计算机名称 。您键入的命令位于$之后 。在Linux或macOS上,Python3的可执行文件名为python3,因此可以通过输入python3 script_name.py来运行python脚本 。
在Windows上,命令提示符通常如下所示:
根据您的用户名,之前的内容可能会有所不同,您输入的命令位于之后 。在Windows上,Python3的可执行文件通常为python 。因此可以通过输入python script_name.py来运行python脚本 。
无论哪种操作系统,本文的Python脚本的输出结果都是相同的 。因此本文以Linux和macOS为例 。
使用命令行执行execution_methods.py,如下所示:
在这个示例中,__name__具有值'__main__' , 其中引号(')表明该值为字符串类型 。
请记住 , 在Python中,使用单引号(')和双引号(")定义的字符串没有区别 。更多关于字符串的内容请参考Python的基本数据类型 。
如果在脚本中包含"shebang行"并直接执行它(./execution_methods.py),或者使用IPython或Jupyter Notebook的%run , 将会获取相同的结果 。
您还可以通过向命令行添加-m参数的方法实现以模块的方式执行 。通常情况下,推荐如下方式pip: python3 -m pip install package_name 。
添加-m参数将会运行包中__main__.py的代码 。更多关于__main__.py文件的内容可参考如何将开源Python包发布到PyPI中 。
在三种情况中,__name__都具有相同的值:字符串'__main__' 。
技术细节:Python文档中具体定义了__name__何时取值为'__main__' 。
当通过标准输入,脚本或者交互提示中读取数据时,模块的__name__将取值为'__main__' 。(来源)
__name__与__doc__,__package__和其他属性一起存储在模块的全局命名空间 。更多关于属性的信息可参考Python数据模型文档,特别是关于模块和包的信息 , 请参阅Python Import文档 。
导入模块或解释器
接下来是Python解释器执行代码的第二种方式:导入 。在开发模块或脚本时,可以使用import关键字导入他人已经构建的模块 。
在导入过程中 , Python执行指定模块中定义的语句(但仅在第一次导入模块时) 。要演示导入execution_methods.py文件的结果,需要启动Python解释器,然后导入execution_methods.py文件:
推荐阅读
- wps转pdf的做法,wps里面转pdf
- sqlservertext类型的简单介绍
- 解说模拟器游戏下载教程,手机版解说
- flutter插件推荐,flutter_downloader
- python复合函数 python中的复合赋值
- 发票软件怎么下载到u盘,怎么把发票下载到税控盘
- 包含51福利直播软件下载大全的词条
- python算幂函数 python中幂运算运算符
- 鸿蒙3更新一直卡在开机,鸿蒙3更新一直卡在开机页面