阅读约需 3分钟。
有一些基本的编码原则可以增加代码的可读性,方便阅读维护以及与他人交流。最近开始用Python3编码,发现使用的PyCharm内置了PEP8的风格检测程序,类似的代码规范检测还有Pychecker、Pylint、Pyflakes等。这些风格建议通常比较全面,但对于初学者可能没那么亲民。本文是想通过实例梳理几条简约的Python编码规范作为自己编码的参考,感觉“将代码写成诗句”也是一种美好的追求。
写一个实例作为参考吧,这个例子改编自《Python核心编程》中第三章的基本风格示例。
Windows 10下运行结果:
py3example.py 示例代码:
http://git.oschina.net/sosly/codes/o0vxytb5qpiud6f12e7c866
既然说到Python3了,其实从编码风格上和Python2.7并没有什么可说的差别,但是语法上是略有区别的,比如print语句没有了,取而代之的是print()函数。比如Python3.X源码文件默认使用utf-8编码,因此建议编写Python3代码时代码文件的格式也设置成utf-8,这样其实对中文的处理会方便一些。这些语法差异会导致写法上的差别。想了解的话可以看这篇文章《Python2.x与3.x版本区别》:
http://www.runoob.com/python/python-2x-3x.html。
那从这段代码实例中,我这里尽可能少地提炼几个简约的编码风格建议作为参考:
起始行
在 Windows 下可以不写第一行注释,Linux下通常有两种写法。
方法1:
#!/usr/bin/python3
这行注释注释意思是指向 python 的路径,告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器。
方法2(推荐):
#!/usr/bin/env python3
这种用法先在 env(环境变量)设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作。
文档字符串
可以用三对双引号””” “””包含,可跨行,通常为对应模块的说明,和直接写注释#的区别是文档字符串可以通过module.__doc__
访问,我们在例子中也测试了。
当然必要的地方应注意加上注释#,最需要写注释的是代码中那些技巧性的部分。
import
导入模块时每个一行
导入模块比较多时,可以简单分类并依次导入。
每个Python文件都要写main函数
不管这个Python文件是直接运行还是用来被导入。即使是一个打算被用作脚本的文件,也应该是可导入的,代码应该在执行主程序前总是检查 if __name__ == '__main__'
, 这样当模块被导入时主程序就不会被执行。
全局变量应首先定义
如实例中的debug = True
统一的命名规则
比如类名采首字母大写的方式命名,模块名、函数名、变量名采用小写加下划线的方式命名。
更多的编码风格建议,可以参考这篇文章《Python 编码规范(Google)》:
http://www.runoob.com/w3cnote/google-python-styleguide.html
随着编码的增多慢慢体会就行,更多的参考资料我也会附在文末。
有一个术语叫“Pythonic”,指的是以Python的方式去编写代码、组织逻辑和对象的行为。我们可以在Python解释器里输入 import this,从“Python之禅”开始探索“Pythonic”的含义。
简单说来就是倡导编写Python代码应该:
简单、清晰。
Python2.x与3.x版本区别
http://www.runoob.com/python/python-2x-3x.html
Python 编码规范(Google简略版)
http://www.runoob.com/w3cnote/google-python-styleguide.html
Python 风格指南(Google详细版)
http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/contents/
转载请注明出处 :sosly 菜鸟笔记
点击“原文链接”调转到博客页面。