在 Python 中使用三重双引号 (""") 和井号 (#) 进行注释有什么区别? 您所在的位置:网站首页 代码的注释有什么用 在 Python 中使用三重双引号 (""") 和井号 (#) 进行注释有什么区别?

在 Python 中使用三重双引号 (""") 和井号 (#) 进行注释有什么区别?

2024-07-12 09:54| 来源: 网络整理| 查看: 265

严格来说,这些评论是专门用散列制作的。

它们可以是块评论:

# Esto es un comentario de bloque en Python # que hace uso de varias lineas. # # Esto es otro párrafo del comentario de bloque if foo == 8: pass

按照惯例,遵循以下规则:

它们适用于后面的部分或全部代码(块)。 它们的缩进级别与它们评论的代码相同。 块注释的每一行都以 # 和空格开头。 块注释中的段落由仅包含一个的行分隔#

行评论:

foo = 4 # Soy un comentario inline

按照惯例:

它们与注释语句定义在同一行。 它们必须与它们评论的语句相隔至少两个空格。 它们必须以 a 开头,#后跟一个空格。

三引号(双引号"""和单引号''')是一种创建也可以是多行的字符串文字的方法:

cad = """Soy una cadena con varias líneas """ print(cad) Soy una cadena con varias líneas

我们还可以在 Python 中仅使用单引号和双引号创建字符串文字:

cad = "Hola" cad = 'Hola'

两种形式没有区别,但如果一种用于指定字面量,另一种可以在字面量内部使用而无需转义:

cad = "Hola tiene una 'h' y una 'l'"

尽管在 Python 代码中使用三引号文字而不分配任何变量的“注释”很常见,但它们并不是真正的注释。真实的是,(非交互式)解释器在生成字节码并解释它时忽略了这些行(没有赋值),所以它们实际上变成了注释,而不是真正的注释,也不是正确的方法。.

有一个例外需要考虑,如果在定义函数、方法或类之后的第一行中声明了此文字,则它们具有特殊功能,即所谓的docstring或文档字符串。它们是用作该对象的文档和使用指南的字符串。文档字符串的约定在PEP 257中定义。

总结:

第一行必须是对象用途的简短摘要,不得明确说明对象的名称或类型,并且必须始终以大写字母开头并以句点结尾。

如果只存在前一行,则不应在其前后添加空格。引号必须在同一行关闭。

它不应该是函数签名,这是通过自省完成的,并且是多余的。仅当函数签名是用 C/C++ ( C/C++ API )编写时才应指定,其中内省无法到达。

如果有更多行,第二行应该是空白的,在视觉上将摘要与描述的其余部分分开。

额外的行提供了有关对象调用约定、副作用、返回等的信息。

当多行时,结束的三引号必须独立于最后一行,最好前面有一个空行。

尽管可以使用用单引号或双引号声明的字符串文字,但按照惯例(并且因为它通常不止一行)即使它们在单行上也会使用三引号。

def sin(x: float, unidad: str = "radian") -> float: """Retorna el seno de x (en radianes). Argumentos keywords: unidad -- radian o grado (radian por defecto) """ pass def sqrt(x: float) -> float: """Retorna la raiz cuadrada de x.""" pass

这个字符串(除了帮助阅读它的人理解代码之外)可以通过__doc__对象的特殊属性访问,并且这个方法可以由 buitin使用,在终端中调用脚本时指定/help参数时使用,由开发环境和代码编辑器本身在编写代码时显示弹出帮助,通常由任何其他文档生成器或解析器:-h--help

>>> help(sin) Help on function sin in module __main__: sin(x: float, unidad: str = 'radian') -> float Retorna el seno de x (en radianes). Argumentos keywords: unidad -- radian o grado (radian por defecto)

所有供公众使用的包、脚本、模块、方法、类和函数都应定义其文档字符串。在非公共方法中不需要它们,但有评论描述它们的作用并没有什么坏处。

为了完成澄清,如果此时有人想知道为什么 Django 使用三引号作为注释...您放置的示例不是注释,它实际上是 Django 自动生成的模块的文档字符串。在这种特定情况下,它是 的默认文档字符串settings.py,就像函数、方法等一样。文档解析器使用它,包括命令行上的/help参数等:-h--help

>>> import settings >>> help(settings) Help on module settings: NAME settings - Django settings for ExampleApp project. DESCRIPTION Generated by 'django-admin startproject' using Django 1.9.6. For more information on this file, see https://docs.djangoproject.com/en/1.9/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/1.9/ref/settings/ DATA ALLOWED_HOSTS = [] AUTH_PASSWORD_VALIDATORS = [{'NAME': 'django.contrib.auth.password_val... ....


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有