做招工的网站排名,企业网站设计图,素材网下载,热门搜索Tutorial Gross tutorial 有些模块包含了仅供脚本使用的代码#xff0c;比如解析命令行参数或从标准输入获取数据。 如果这样的模块被从不同的模块中导入#xff0c;例如为了单元测试#xff0c;脚本代码也会无意中执行。
这就是 if name ‘main’ 代码块的用武之地。除非…Tutorial Gross tutorial 有些模块包含了仅供脚本使用的代码比如解析命令行参数或从标准输入获取数据。 如果这样的模块被从不同的模块中导入例如为了单元测试脚本代码也会无意中执行。
这就是 if name ‘main’ 代码块的用武之地。除非模块在顶层环境中(python 模块所在文件名.py)被执行否则该块内的代码不会运行。
将尽可能少的语句放在位于 if name ‘main’ 之下的代码块中可以提高代码的清晰度和准确度。 通常将由一个名为 main 的函数来封装程序的主要行为:
简单来说aaa.py中if __name__ __main__中的代码只在python aaa.py才会执行 如果仅仅在其他bbb.py中import aaa其中的代码不会执行。
echo.py
import shlex
import sysdef echo(phrase: str) - None:A dummy wrapper around print.# for demonstration purposes, you can imagine that there is some# valuable and reusable logic inside this functionprint(phrase)def main() - int:Echo the input arguments to standard outputphrase shlex.join(sys.argv)echo(phrase)return 0if __name__ __main__:sys.exit(main()) # next section explains the use of sys.exit请注意如果模块没有将代码封装在 main 函数内而是直接放在 if name ‘main’ 块内那么这个 phrase 变量对整个模块来说就是全局变量。 这很容易出错因为模块内的其他函数可能会无意中使用全局变量而不是局部名称。 一个 main 函数解决了这个问题。
使用 main 函数有一个额外的好处就是 echo 函数本身是孤立的可以在其他地方导入。当 echo.py 被导入时echo 和 main 函数将被定义但它们都不会被调用因为 name ! ‘main’ 。