当前位置: 首页 > 科技观察

提高Python代码可读性的五个基本技巧_1

时间:2023-03-18 02:14:08 科技观察

Python中有很多方法可以帮助我们理解代码的内部工作原理,良好的编程习惯可以让我们的工作事半功倍!例如,我们最终可能会得到看起来很像下图的代码。不是最糟糕的,但是,我们需要扩展如下内容:load_las_file函数中的f和d代表什么?为什么我们要检查粘土函数中的结果?这些功能需要什么类型?花车?数据框?在本文中,我们将重点介绍五个基本技巧,介绍如何通过文档、输入提示和正确的变量名称来提高应用程序/脚本的可读性。1.注释我们可以对我们的代码做的第一件事就是给我们的代码添加一些注释,但是不要过度使用它。注释应该告诉您为什么代码有效或为什么某些事情以某种方式完成,而不是它是如何工作的。Python中的注释通常使用井号(#)完成,并且可以跨越单行或多行。#Commentusingthehashtag#Anothercommentusingthehashtag对于多行评论,我们也可以使用三重双引号。"""Thisisanexampleofamulti-linecomment"""在下面的示例中,在代码中添加了一些注释,以解释某些代码行背后的工作流程和推理2.ExplicitTypingPython语言是动态类型的,这意味着变量类型只在运行时检查。此外,变量可以在代码执行期间更改类型。另一方面,静态类型涉及明确变量的类型,并且在代码执行期间不能更改。2014年,PEP484引入了类型提示的概念,后来在Python3.5中,这些允许我们明确变量应该是什么类型。通过添加类型提示,您可以显着提高代码的可读性。在下面的例子中,我们可以很容易地得到以下信息:该函数需要两个参数。文件名参数应为字符串类型。start_depth参数应该是float类型。默认值为无。该函数将返回一个pandasDataFrame对象。我们可以立即使用类型提示准确地确定函数期望什么以及它将返回什么。3.Docstrings(文档字符串)文档字符串是紧跟在函数或类定义之后的字符串文字。Docstrings是一种很好的方式来详细解释我们的函数做了什么,它需要什么参数,以及任何异常,它返回什么等等。此外,如果我们使用像Sphinx这样的工具为我们的代码创建在线文档,docstrings将自动提取并转换为适当的文档。下面的示例显示了名为clay_volume的函数的文档字符串。在这里,我们可以指定每个参数是什么,这比基本类型提示更详细,我们还可以包括更多关于函数背后的方法的信息,例如学术参考或方程式。当我们从代码中的其他地方调用函数时,拥有文档字符串也非常有帮助。例如,当使用VisualStudio编辑代码时,您可以将鼠标悬停在函数调用上并查看该函数的作用及其所需的弹出窗口。如果您使用VisualStudioCode(VSCode)编辑Python代码,则可以使用autoDocstring等扩展来简化创建文档字符串的过程。该插件允许我们输入三个双引号并自动填充模板的其余部分,我们只需要关注必须填写的其他细节。4.可读的变量名很多时候,我们在写代码的时候,并不会太在意变量的名字,尤其是急于完成某些功能的时候。但是,如果我们的代码返回一系列名为x1或var123的变量,那么任何人乍一看可能无法理解它们代表什么。在下面的示例中,我们有两个变量f和d。可以通过查看代码的其他部分来猜测这些含义,但这可能需要一些时间,尤其是在代码很长的情况下。如果我们为这些变量分配适当的名称,知道其中之一是lasio.read()调用读取的数据文件,并且可能是原始数据,数据变量会告诉我们这是我们正在使用的实际数据。5.避免幻数幻数是代码中的值,其背后有许多无法解释的含义,可以表示常量。在代码中使用这些可能会导致歧义,特别是对于那些不熟悉任何使用数字的计算的人来说。此外,如果我们在多个地方有相同的幻数并且需要更新它,我们将不得不更新它的每个实例。然而,如果将数字分配给正确命名的变量,整个过程就会容易得多。在下面的示例中,我们有一个函数计算一个名为result的值并将其乘以0.6。通过代码我们无从得知那段代码到底是什么意思。如果我们声明一个变量并为其赋值,那么我们就有更好的机会知道它是什么。在这种情况下,它是用于将伽马射线指数转换为粘土体积的粘土与页岩的比率。总结通过注释和文档字符串向我们的代码添加文档可以大大帮助我们自己和其他人理解代码的作用。的确,一开始它可能感觉像是一件苦差事,但通过使用工具和定期练习,它可以成为你的第二天性。