写 Python 脚本时,一定要带上这个
发布时间:2021-11-02 11:43:05 所属栏目:语言 来源:互联网
导读:我发现有不少朋友写 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.,不是吗? (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |