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

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

时间:2023-03-17 01:06:43 科技观察

译者|别人接手了项目,不知道从何下手?这种情况对于开发者来说是比较常见的。Python中有很多方法可以帮助我们理解代码的内部工作原理,因此当您从头开始查看代码或编写代码时,应该更容易从中断处继续。这里我给大家举个例子,我们可能会得到如下图所示的代码。这还不是最坏的,但有一些事情我们需要确认,例如:load_las_file函数中的f和d代表什么?为什么要检查粘土函数中的结果?这些功能需要什么类型?花车还是数据框?在本文中,我将介绍5个基本技巧,介绍如何通过文档、提示输入和正确的变量名称来提高应用程序/脚本的可读性。1.注释我们可以对代码做的第一件事就是在某些行添加注释,但要注意不要注释太多。注释需要解释为什么代码有效,或者为什么某些事情以某种方式完成,而不是它是如何完成的。Python中的注释通常使用井号(#)完成,它可以跨越一行或多行。#Commentusingthehashtag#Anothercommentusingthehashtag对于多行评论,我们也可以使用双引号。"""Thisisanexampleofamulti-linecomment"""在下面的示例中,一些注释已添加到代码中以解释某些代码行的工作流程和原因:2.显式类型Python语言是动态的typed,这意味着变量类型只会在运行时检查。此外,变量可以在代码执行期间更改类型。另一方面,静态类型涉及显式声明变量类型,并且在代码执行期间不能更改。2014年,PEP484引入了类型提示的概念,后来在Python3.5中引入。这允许您显式声明变量类型。通过添加类型提示,您可以显着提高代码的可读性。在下面的例子中,我们可以看到需要两个参数:参数filename的类型是string,参数start_depth的类型是float类型,这个参数的默认值为None。该函数将返回一个pandasDataFrame对象根据类型提示,我们可以确切地知道该函数期望什么,以及它将返回什么。3.Docstringdocstring是紧跟在函数或类定义之后的字符串。Docstrings是一个很好的方式来详细解释一个函数做什么,它需要什么参数,它会抛出什么异常,它返回什么,等等。此外,如果您使用像Sphinx这样的工具为您的代码创建在线文档,文档字符串将被自动提取并转换为适当的文档。以下示例显示名为clay_volume的函数的文档字符串。这里我们可以指定每个参数的含义。这使得它比基本类型提示更冗长。您还可以包括有关函数背后的方法的更多信息,例如学术参考或方程式。当我们在代码的其他地方调用函数时,文档字符串也非常有用。例如,当使用VisualStudio编写代码时,您可以将鼠标悬停在函数调用上,然后会看到一个弹出窗口,显示该函数的作用及其要求。如果您使用VisualStudioCode(VSCode)编辑您的Python代码,您可以使用像autoDocstring这样的扩展来简化创建文档字符串的过程。您可以输入三个双引号,它会自动填充模板的其余部分。您只需要填写详细信息。提示:如果您在参数中声明了类型,它们将被自动拾取。4.可读的变量名有时候,当你在写代码的时候,你并不会太注意变量名,尤其是在时间紧迫的时候。但是,如果你回过头来看你的代码,你发现一系列名为x1或var123的变量,你可能无法一眼就理解它们的含义。在下面的示例中,有两个变量f和d。我们可以通过查看代码的其他部分来猜测这些变量的含义,但这可能需要时间,尤其是在代码很长的情况下。如果我们给这些变量适当的名称,我们就能知道其中之一是lasio.read()调用读取的data_file,而且很可能是原始数据。数据变量告诉我们这是我们正在使用的实际数据。5.避免幻数幻数是代码中的值,其背后有无法解释的含义,可以是常量。在代码中使用这些可能会导致歧义,尤其是当您不熟悉在计算中使用数字时。另外,如果我们在多个地方有相同的幻数,当它需要更新时,我们必须更新它的每个实例。但是,如果为这些数字分配一个适当命名的变量,替换过程就会容易得多。在下面的示例中,我们有一个函数计算一个名为result的值并将其乘以0.6。这是什么意思?是换算系数吗?标量?如果我们声明一个变量并为其赋值,那么我们就有更好的机会知道它是什么。在这种情况下,粘土与页岩的比率用于将伽马射线指数转换为粘土体积。6.最终代码应用上面的技巧后,我们的最终代码现在看起来更清晰,更容易理解。7.总结通过注释和文档字符串向您的代码添加解释有助于您和其他人理解您的代码在做什么。一开始可能感觉像是一件苦差事,但通过使用工具和定期练习,它会成为你的第二天性。原文链接:https://towardsdatascience.com/5-essential-tips-to-improve-the-readability-of-your-python-code-a1d5e62a4bf0译者介绍社区编辑赵庆尧,一直从事driver发展多年。他的研究兴趣包括安全操作系统和网络安全,并发表了与网络相关的专利。