1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 了解Python编码风格 让你的代码更好看

了解Python编码风格 让你的代码更好看

时间:2021-05-17 23:28:16

相关推荐

了解Python编码风格 让你的代码更好看

和其他编程语言不同,Python有一套独特的编码风格,掌握Python的编码风格对于编写优美的代码至关重要。

微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩

本文是一篇快速了解Python编码风格的指南,了解Python编码风格将有助于写出清晰、一致、易懂的代码。

目录

简介

命名规则

是否使用空格?

一般准则

使用autopep8

PEP简介

PEP是Python Enhancement Proposal的缩写。PEP是向Python社区提供信息或描述Python或其过程或环境的新特性的设计文档。

有大量的PEP列表涉及不同的Python相关主题,但本文将只关注PEP 8,它是涉及Python编码风格约定的指南。它的目的是通过定义一套命名规则、制表符与空格的用法、最大行长度等准则,使代码更易读和一致。

然而,请记住,这些并不是规则,有时不遵循某个特定的准则是有意义的,可以通过链接查看一个示例:A Foolish Consistency is the Hobgoblin of Little Minds(/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds)

命名规则

首先来看一个简单的例子。对这两个函数有什么看法?

defsumEvenNumbers(numbers):even_sum=0forListNumberinnumbers:ifListNumber%2==0:even_sum+=ListNumberreturneven_sumdefsum_odd_nums(nums):OddSum=0forninnums:ifn%2==0:OddSum+=nreturnOddSum

如上所示,这个例子的最大问题是不一致。示例中有两个函数,一个是mixedCase的,另一个是snake_case的。在每个函数中定义的局部变量也有混合的命名方式。如果在一个大项目中,这种混合的不同的命名方式是不应该出现的。

这种情况的问题在于以下几个原因:

阅读代码的次数往往多于编写代码的次数,所以保持代码的简洁和易懂是很重要的。

在创建一个新的变量/函数/类时,可以少操心一件事,因为已经知道它应该是什么样子的,只需要想出一个描述性的名字。

当到处都是相同的命名模式时,写静态分析或自动化脚本会更容易。

由于这些原因,需要定义一些大家都能遵循的标准。

在PEP 8中,它为变量、类、函数和其他的推荐命名标准提供了一个准则。下面是其中的一些:

类:使用CamelCase风格(例如:class InputManager)。

函数和变量:使用snake_case风格(例如:def sum_even_numbers(numbers)sum_even = 0)

方法:与函数相同,如果是一个非公开的方法,则使用一个前导下划线(例如:def _calculate_intermediate_sum(self))。

常量:使用所有大写字母和下划线来分隔单词(例如:MAX_WIDTH = 10)

是否使用空格?

下一个内容是空格的使用与否。这一点纯属美学范畴。

使用空格:

在二元运算符(=+=-=>>=<<===,等)的两侧留一个空格(例如:sum += 5)。

在元组/列表中的逗号后使用一个空格(例如:ages= [12, 13, 14]coordinates = (4, 3))

在函数类型的提示中:在冒号后加一个空格,并在->的两边加一个空格(例如:def sum_even(nums: List) -> int:)

在函数签名中,当默认值与类型提示结合使用时,在=周围使用白色空格(例如,def draw(scale: int = 1) -> None:)。

不使用空格:

不要添加额外的空格来对齐运算符。

在元组/列表中的逗号之前。

紧靠小括号、大括号或圆括号内。

避免尾部使用空格。

如下所示是一些好与坏的例子:

#好例子age=20social_security_number=1111info[0]=(names[0],{'address':'somewhere'})heights=[180,178,195]#坏例子age=20social_security_number=1111info[0]=(names[0],{'address':'somewhere'})heights=[180,178,195]

一般准则

受限于篇幅,还有很多其他的准则本文仅简短提示一下内容(更详细的描述可以在PEP 8文档中找到)(/pep-0008/):

导入应该在单独的行中进行。

使用空格而不是制表符 (除非在代码库中已经使用了制表符,因为Python不允许混合使用空格和制表符)。

建议代码的最大行长为79个字符,注释或文档字符串为72个字符。

每个缩进级别使用4个空格。

使用autopep8

偶尔需要一些帮助,当涉及到遵循讨论过的标准时,首选库是autopep8。这个工具会自动格式化Python代码以符合PEP 8风格指南,还可以指定格式化的程度以及在格式化时是否应该忽略一些规则 (由autopep8修复的规则:/project/autopep8/#features)。

安装它:

pip install autopep8

使用它:

autopep8 --in-place --aggressive <filename>

如果在Visual Studio Code上开发,建议使用Python扩展中的自动格式化功能,当保存文件时,它会在文件上运行autopep8

只需要在VSCode settings.json文件中添加几行代码。下面是一个示例片段:

"python.formatting.autopep8Args":["--max-line-length=79","--ignore","E402"],"editor.formatOnSave":true,

推荐书单

《Python从入门到精通(第2版)》

《Python从入门到精通(第2版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Python进行程序开发应该掌握的各方面技术。全书共分23章,包括初识Python、Python语言基础、运算符与表达式、流程控制语句、列表和元组、字典和集合、字符串、Python中使用正则表达式、函数、面向对象程序设计、模块、异常处理及程序调试、文件及目录操作、操作数据库、GUI界面编程、Pygame游戏编程、网络爬虫开发、使用进程和线程、网络编程、Web编程、Flask框架、e起去旅行网站、AI图像识别工具等内容。所有知识都结合具体实例进行介绍,涉及的程序代码都给出了详细的注释,读者可轻松领会Python程序开发的精髓,快速提升开发技能。除此之外,该书还附配了243集高清教学微视频及PPT电子教案。

《Python从入门到精通(第2版)》【摘要 书评 试读】- 京东图书京东图书频道为您提供《Python从入门到精通(第2版)》在线选购,本书作者:明日科技,出版社:清华大学出版社。买图书,到京东。网购图书,享受最低优惠折扣!/13284890.html

精彩回顾

《领略数学之美,使用Python创建分形图案》

《使用Python进行自动化录屏》

《轻松完成异步任务,一文搞懂Python Celery》

《ChatGPT插件使用攻略,解锁互联网新体验》

《使用Python轻松创建Flask API后台任务》

《使用ChatGPT API创建Python文档,竟然如此简单》

《16 个必知必会的 Python 技巧,助你高效编程》

微信搜索关注《Python学研大本营》,加入读者群

访问【IT今日热榜】,发现每日技术热点

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。