用 Python 编写干净代码的 10 种必备模式

专注IP定位
• 阅读 1051

Python 是最优雅、最简洁的编程语言之一,但拥有优美简洁的语法并不等同于编写简洁的代码。开发人员仍然需要学习 Python 最佳实践和设计模式来编写干净的代码。什么是干净代码? C++ 编程语言的发明者 Bjarne Stroustrup 的这句话清楚地解释了干净代码的含义:

“我喜欢我的代码优雅而高效。逻辑应该直截了当,让 bug 难以隐藏,依赖最小化以方便维护,错误处理根据明确的策略完成,性能接近最佳,以免诱使人们使用无原则的优化使代码混乱。干净的代码能做好一件事。”

从这句话中,我们可以挑选出干净代码的一些品质:

干净的代码是重点。每个函数、类或模块都应该做一件事并做好。 干净的代码易于阅读和推理。Grady Booch,面向对象的分析和设计与应用程序的作者:干净的代码读起来就像写得很好的散文。 干净的代码很容易调试。 干净的代码易于维护。也就是说,其他开发人员可以轻松阅读和增强它。 干净的代码是高性能的。

好吧,开发人员可以随心所欲地编写他们的代码,因为没有固定的或约束性的规则来强迫他/她编写干净的代码。然而,糟糕的代码会导致技术债务,从而对公司造成严重后果。因此,这是编写干净代码的警告。

在本文中,我们将研究一些有助于我们在 Python 中编写干净代码的设计模式。让我们在下一节中了解它们。

用 Python 编写干净代码的模式 命名约定: 命名约定是编写干净代码的最有用和最重要的方面之一。在命名变量、函数、类等时,请使用有意义的名称,这些名称可以揭示意图。这意味着我们更喜欢长的描述性名称而不是简短的模棱两可的名称。

下面是一些例子:

  1. 使用易于阅读的长描述性名称。这将消除编写不必要的注释的需要,如下所示: 用 Python 编写干净代码的 10 种必备模式

  2. 使用描述意图揭示名称。其他开发人员应该能够从名称中找出您的变量存储的内容。简而言之,您的代码应该易于阅读和推理。 用 Python 编写干净代码的 10 种必备模式

  3. 避免使用模棱两可的速记。变量应该有一个长的描述性名称,而不是一个容易混淆的短名称。 用 Python 编写干净代码的 10 种必备模式

  4. 始终使用相同的词汇。与您的命名约定保持一致。 当其他开发人员处理您的代码时,保持一致的命名约定对于消除混淆非常重要。这适用于命名变量、文件、函数甚至目录结构。 用 Python 编写干净代码的 10 种必备模式

  5. 开始在您的编辑器中跟踪代码库问题。 保持 Python 代码库清洁的一个主要组成部分是让工程师可以轻松地跟踪和查看代码本身的问题。在编辑器中跟踪代码库问题允许工程师: 在编辑器中跟踪代码库问题允许工程师: 全面了解技壁垒 查看每个代码库问题的上下文 减少上下文切换 持续解决技术壁垒 您可以使用各种工具来跟踪您的技术债务,但最快速和最简单的入门方法是使用与 Jira、Linear、Asana 和其他项目管理工具集成的VSCode或JetBrains的免费 Stepsize 扩展。

  6. 不要使用幻数。幻数是具有特殊硬编码语义的数字,出现在代码中但没有任何意义或解释。通常,这些数字以文字形式出现在我们代码中的多个位置。 用 Python 编写干净代码的 10 种必备模式

  7. 与您的函数命名约定保持一致。 从上面的变量可以看出,在命名函数时要遵守命名约定。使用不同的命名约定会使其他开发人员感到困惑。用 Python 编写干净代码的 10 种必备模式

  8. 函数应该做一件事,并且把它做好。编写执行单个任务的简短函数。需要注意的一个很好的经验法则是,如果您的函数名称包含“and”,您可能需要将其拆分为两个函数。 用 Python 编写干净代码的 10 种必备模式

  9. 不要使用标志或布尔标志。布尔标志是保存布尔值的变量——真或假。这些标志被传递给一个函数,并由该函数用于确定其行为。 用 Python 编写干净代码的 10 种必备模式

  10. 不要添加多余的上下文。这可以通过在使用类时向变量名添加不必要的变量来实现。 用 Python 编写干净代码的 10 种必备模式 在上面的示例中,由于我们已经在 Person 类中,因此无需为每个类变量添加 person_ 前缀。

奖励:模块化您的代码:

为了使您的代码保持组织和可维护性,请将您的逻辑拆分为不同的文件或称为模块的类。Python 中的模块只是一个以扩展名结尾的文件.py。每个模块都应该专注于做一件事并做好。

您可以遵循面向对象的 OOP 原则,例如遵循基本的 OOP 原则,如封装、抽象、继承和多态。

结论 编写干净的代码有很多优点:提高软件质量、代码可维护性和消除技术壁垒。

在本文中,您了解了一般的干净代码以及使用 Python 编程语言编写干净代码的一些模式。但是,这些模式也可以在其他编程语言中复制。

最后,我希望通过阅读这篇文章,你已经对干净代码和编写干净代码的一些有用的模式有了足够的了解。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
学python的猫 学python的猫
3年前
python的这些必备干货知识点,快来看看有没有你不了解的?
Python是当前主流的编程语言之一,其优点有:一:语法简洁,可以让使用者用少量的代码完成相对复杂的效果。二:标准库和第三库多,功能强大;三:站在了人工智能和大数据的风口上;像国内的豆瓣呀,知乎呀等等知名网站都是基于python开发的,而Youtube、Reddit、Dropbpx也是用python的框架开发的。近几年学习python的小伙伴越来越多,那么p
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
3年前
Django框架详解之template
模板简介  将页面的设计和python的代码分离开会更干净简洁更容易维护。我们可以使用Django的模板系统来实现这种模式  python的模板:HTML代码模板语法  模板包括在使用时会被值替换掉的变量,和控制模板逻辑的标签变量  在Django模板中遍历复杂数据结构的关键是句点字符{语法}{{
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这