Coo*_*tar 243 python comments multiline
好的,我知道三引号字符串可以作为多行注释.例如,
"""Hello, I am a
multiline comment"""
Run Code Online (Sandbox Code Playgroud)
和
'''Hello, I am a
multiline comment'''
Run Code Online (Sandbox Code Playgroud)
但从技术上讲这些都是字符串,对吗?
我用谷歌搜索并阅读了Python风格指南,但我无法找到技术答案,为什么没有正式实现多行,/**/类型的评论.我使用三引号没有问题,但我对导致这个设计决定的原因有点好奇.
Ned*_*der 260
我怀疑你会得到一个更好的答案,"Guido不觉得需要多行评论".
Guido发布了关于此的推文:
Python技巧:您可以使用多行字符串作为多行注释.除非用作文档字符串,否则它们不会生成代码!:-)
Ste*_*osh 60
多行注释很容易破解.如果您在简单的计算器程序中有以下内容怎么办?
operation = ''
print("Pick an operation: +-*/")
# Get user input here
Run Code Online (Sandbox Code Playgroud)
尝试使用多行注释对此进行评论:
/*
operation = ''
print("Pick an operation: +-*/")
# Get user input here
*/
Run Code Online (Sandbox Code Playgroud)
糟糕,您的字符串包含结束注释分隔符.
Tri*_*ych 34
三重引用的文本不应被视为多行注释; 按照惯例,它们是文档字符串.它们应该描述代码的作用以及如何使用它,但不能描述注释掉代码块之类的内容.
根据Guido的说法,Python中的多行注释只是连续的单行注释(搜索"块注释").
要注释代码块,我有时会使用以下模式:
if False:
# A bunch of code
Run Code Online (Sandbox Code Playgroud)
Jar*_*rey 30
这可能追溯到核心概念,即应该有一种明显的方法来完成任务.其他评论样式会增加不必要的复杂性并可能降低可读性
就我个人而言,Java的评论风格就像
/*
* My multi-line comment in Java
*/
Run Code Online (Sandbox Code Playgroud)
因此,如果您的样式是前面示例的典型样式,那么仅具有单行注释并不是一件坏事,因为相比之下,您将拥有
#
# My multi-line comment in Python
#
Run Code Online (Sandbox Code Playgroud)
VB.NET也是一种仅具有单行注释的语言,而且我个人觉得它很烦人,因为注释最终看起来不像注释,而更像某种引用
'
' This is a VB.NET example
'
Run Code Online (Sandbox Code Playgroud)
仅单行注释最终比多行注释具有更少的字符使用率,并且在正则表达式语句中不太可能被某些狡猾的字符转义?我倾向于同意内德。