ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何编写高质量的Pythonic风格代码

2020-11-23 23:52:32  阅读:214  来源: 互联网

标签:Pythonic whitespace 高质量 代码 py MyPython 风格 编写 变量名


每一种语言都有它的编程风格,打个比方就像各种菜系,粤菜,川菜,淮扬菜每一种都有自己的独特风格.Python的开发者用Pythonic这个词来形容那种符合python风格的代码.这种pythonic风格的代码,既不是非常严格的规范,也不是编辑器强加给开发者的规则,它是大家在python语言的过程中指定的一种指南,一种协同工作过逐渐形成的习惯.宗旨就是直观,简洁而容易读.

1,避免只使用大小写来区分不同的对象
比如a是一个数值类型的变量,而A是String类型,虽然在编码的过程中容易区分二者的含义,但是没有啥用,它不会给其他阅读代码的人带来多少便利.

2,避免使用容易混淆的名称
不要用内建的函数名来表示其他含义的名称,没有构建新的数据类型的情况下使用类似element,list,dict等作为变量名.不要使用o(字符O的小写,很容易以为是数值0),长的太像了,1(字母L的小写,也和数值1容易混淆),
变量名最好和你要解决的问题联系起来.

3.不要害怕过长的变量名
有的时候为了让程序更容易理解和阅读,长一点的变量名是必须的,有的同学说长的变量名要敲好多次,怎么办,没有关系.现在很多编辑器都有代码自动提示,这都不是事.
比如下面的 person_info比pi的可读性要强很多:

person_info={'name':'zhang san','IDCard':'200123','address':'Num 100,Xihu Road'}

4.多看看源码,学习别人的优秀代码风格
照猫画虎是一个比较快的学习过程.特别是业界比较公认的Pythonic代码,比如web框架里面比较有名的Flask或者requests,蛮经典的是一个比较好的理解pythonic风格代码的精髓.

5.利用一个神器,比如PEP8
这是一个关于Python编码风格的指南,全称叫"Python Enhancement Proposal #8" 它列出了很多细节包含了一些对代码的布局,注释,命名的要求,
(如果对PEP8有兴趣的同学可以留言,我会单独开个章节讲一下PEP8里面的变量,函数,参数,类,模块和包)。若你能遵守这些原则,就很容易些出pythonic的代码。

需要先下载一个 pep8 ,敲pip install -U pep8。
然后用它来检测一些自己的代码 ,就一目了然了.

$ pep8 --first MyPython.py
MyPython.py:1:36: E231 missing whitespace after ','
MyPython.py:31:6: E225 missing whitespace around operator
MyPython.py:118:80: E501 line too long (85 > 79 characters)
MyPython.py:120:1: W191 indentation contains tabs
MyPython.py:123:38: W291 trailing whitespace
MyPython.py:141:42: E203 whitespace before ':'
MyPython.py:144:57: E202 whitespace before ')'
MyPython.py:150:1: E303 too many blank lines (5)
MyPython.py:306:35: W292 no newline at end of file

标签:Pythonic,whitespace,高质量,代码,py,MyPython,风格,编写,变量名
来源: https://blog.51cto.com/15009341/2553631

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有