站长网 语言 写 Python 脚本时,一定要带上这个

写 Python 脚本时,一定要带上这个

我发现有不少朋友写 Python 脚本非常随意,要么不用函数,要么函数随处定义,反正第一眼看不出要执行的第一行代码位于何处,这样的脚本可读性很差,而且容易隐藏 bug,解决这个问题很简单,当我们写 Python 脚本时,一定要加上这个:def main(): # do somet

我发现有不少朋友写 Python 脚本非常随意,要么不用函数,要么函数随处定义,反正第一眼看不出要执行的第一行代码位于何处,这样的脚本可读性很差,而且容易隐藏 bug,解决这个问题很简单,当我们写 Python 脚本时,一定要加上这个:

 

def main(): 

    # do something 

    print("do something.") 

 

 

if __name__ == "__main__": 

    main() 

你可能要反对了:我怎么爽就怎么写,凭什么听你的,多写个 if __name__…?

 

别急,让我说三个原因。

 

第一,它让 Python 文件的作用更加明确

首先需要明白 __name__ 的作用,当脚本直接被 Python 解释器执行时,其值就是 "__main__",当其被其他 Python 程序 import 的时候,其值就是对应的 Python 脚本文件名,可以在 Python 解释器验证下,假定有个 some_script.py 其内容如下:

 

print("some_script.py") 

print(__name__) 

在 Python 解释器导入一下:

 

❯ vim some_script.py 

❯ python 

Python 3.8.5 (v3.8.5:580fbb018f, Jul 20 2020, 12:11:27) 

[Clang 6.0 (clang-600.0.57)] on darwin 

Type "help", "copyright", "credits" or "license" for more information. 

>>> import some_script 

some_script.py 

some_script 

>>> 

可以看到,__name__ 的值就是 Python 脚本的文件名 some_script。

 

也就是说 if __name__ == "__main__": 后面的代码在 import 的时候是不会运行的。

 

明白了这一点,if __name__ == "__main__": 就可以做为区分脚本和库的一个标志,当我们看到 if __name__ == "__main__": 时,就认为这一个可以直接运行的脚本,当没有看到这行代码时,就认为这是一个库,可以被其他程序引用,Explicit is better than implicit.,不是吗?

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/biancheng/yuyan/2021/1102/18052.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部