python语言的注释语句引导符_Python 为什么用 # 号作注释符?
关于编程语言中的注释,其重要性基本上已为大家所共识。
然而关于注释的规范,这个话题就像我们之前聊过的缩进、终止符和命名方式一样,众口难调。
注释符通常可分为两种,即行注释与块注释(inline/block),它们在不同的编程语言中的符号可谓让人眼花缭乱。
比如行注释符,它至少有以下的 17 种之多(出自维基百科):
其中两个最大的阵营分别是“//”与“#”号:
// 注释符:ActionScript, C (C99), C++, C#, D, F#, Go, Java, JavaScript, Kotlin, Object Pascal (Delphi), Objective-C, PHP, Rust, Scala, SASS, Swift, Xojo
# 注释符:Bourne shell and other UNIX shells, Cobra, Perl, Python, Ruby, Seed7, Windows PowerShell, PHP, R, Make, Maple, Elixir, Nim
那么,**Python 为什么用“#”号作注释符,而不是“//”呢? **
这个问题恐怕没办法从解析的效率、符号的辨识度和输入的便利性等方面回答,因为它们基本上没有区别。
我没有找到官方的解释,但是从这些注释符的阵营中,已经不难得出一个较为合理的解释:
// 注释符基本上被 C 语言家族所用
# 注释符则基本上是被 Shell 和其它脚本语言所用
Python 在创造之初,从 C 和 Shell 语言中借鉴了不少东西,但它是一种脚本语言,因此在注释符这个最为基础的语言要素上,就偏向了脚本语言的传统。
在某些“类脚本语言”中,比如 yaml、conf 和 ini 等格式的配置文件,它们大多也是采用脚本语言的“#”号作为注释符。
所以,Python 行内注释符的选择,大概可以归结为一种历史原因,即借鉴了 Shell 脚本语言的写法。
相比于行注释符的多样,块注释符更加是让人眼花缭乱:
大多数写法是我从未见过的,有些甚至是难以忍受的,槽点太多!
在这份表格里,我们看不到 Python,因为从严格意义上讲,Python 并没有块注释符!
一般而言,我们在连续的每行内容前面加“#”号,达到块注释的效果。块注释被看作是多个行注释。
PEP-8 中是这么建议的:
Each line of a block comment starts with a # and a single space (unless it is indented text inside the comment).
有人曾在 Twitter 上发问,为什么 Python 没有块注释符?
Guido 回复称,可以将多行字符串用作块注释:
Python 的多行字符串用三对单引号或双引号表示,它还可以用作文档字符串(即Documentation Strings,简写docstrings)。
但是,将它当做多行注释符使用,在语义上则有点怪怪的——它表示的是一段字符串,虽然没有赋值给变量,不会生成代码,但是它并非语义上的注释。
由于脚本语言的特性,它允许我们写一段“无根的字符串”,在语法上没有问题,也没有负作用(negative effects),但是,如果把它作为注释使用,这就是一种副作用(side effects)了。
从这点上考虑,我虽然不反对有人把多行字符串写法用作块注释,但是我会更推荐大家使用“#”号作注释。
另外,对于无用的代码,最好的做法就是直接删除,如果后续发现有需要,再回退修改。详细的多行注释尽量放在文档字符串中,这样在核心代码中就会很少出现多行注释的情况了。
对于 Python 的注释符用法,大家是怎么想的呢?欢迎留言交流。
如果你觉得本文分析得不错,那你应该会喜欢这些文章:
写在最后:本文属于“Python为什么”系列(Python猫出品),该系列主要关注 Python 的语法、设计和发展等话题,以一个个“为什么”式的问题为切入点,试着展现 Python 的迷人魅力。若你有其它感兴趣的话题,欢迎填在《Python的十万个为什么? 》里的调查问卷中。部分话题会推出视频版,请在 B 站收看,观看地址:视频地址
公众号【Python猫】, 本号连载优质的系列文章,有Python为什么系列、喵星哲学猫系列、Python进阶系列、好书推荐系列、技术写作、优质英文推荐与翻译等等,欢迎关注哦。
python语言的注释语句引导符_Python 为什么用 # 号作注释符?相关推荐
- python为什么用号做注释符_Python 为什么用 # 号作注释符?
关于编程语言中的注释,其重要性基本上已为大家所共识. 然而关于注释的规范,这个话题就像我们之前聊过的缩进.终止符和命名方式一样,众口难调. 注释符通常可分为两种,即行注释与块注释(inline/blo ...
- python为什么用号做注释符_Python为什么用#号作注释符?
Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待 4999元包邮 去购买 > 关于编程语言中的注释,其重要性基本上已为大家所共识. 很多人学习py ...
- Python 为什么用 # 号作注释符?
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者:豌豆花下猫 来源:Python猫 关于编程语言中的注释,其重 ...
- python多行注释符号_涨知识Python 为什么用 # 号作注释符?
- START -关于编程语言中的注释,其重要性基本上已为大家所共识.然而关于注释的规范,这个话题就像我们之前聊过的缩进.终止符和命名方式一样,众口难调.注释符通常可分为两种,即行注释与块注释(inl ...
- python的注释符严格说来只有一种,Python 为什么用 # 号作注释符?
关于编程语言中的注释,其重要性基本上已为大家所共识. 然而关于注释的规范,这个话题就像我们之前聊过的缩进.终止符和命名方式一样,众口难调. 注释符通常可分为两种,即行注释与块注释(inline/blo ...
- python语言的注释语句引导符不包括什么_以下选项中,哪一个是Python语言中代码注释使用的符号?________...
[单选题]关于 Python 语句 P = –P,以下选项中描述正确的是________ [多选题]Python的数字类型包括( ) [多选题]Python中的注释符有哪几种?( ) [判断题]已知 ...
- python中使用什么注释语句和运算_Python基础知识
本文标识 :Python_1 本文编辑 : Jack 风 编程工具 : Anaconda.Pycharm 阅读时长 : 12分钟 Python基础学习为什么那么多培训机构?那么多的程序员呢? 很简单啊 ...
- python语句分号_python 为什么不用分号作终止符?
python语言中包含各种符号,我们平常使用python写代码的时候一定要注意,必须要弄明白每种符号所代表的含义以及相应的使用方法.分号";"就是python中常见的一种符号,大家 ...
- python语言使用什么语句实现上下文管理协议_Python 技巧探究:上下文管理器和with语句...
一:前言 Python 里面的 with 语句是被认为是晦涩难懂的特征之一,但是当你窥视它的内部你就会发现这里面并没有什么魔法.事实上它可以帮助我们写一些整洁和可读性高的代码. 那么 with 语句适 ...
最新文章
- 【Ubuntu】Ubuntu14.04添加163的源
- Windows下使用IDEA+Maven搭建本地Hadoop环境
- [渝粤教育] 广东-国家-开放大学 21秋期末考试Java程序设计基础10232k2
- 背景图片hover加蒙层_css3实现图片遮罩效果鼠标hover以后出现文字
- php怎么创建两条折线图,excel折线图怎么做两条
- linux新建用户切换后显示-bash-4.1$(转载)
- 为什么不要随便点击下载链接:过时的远程病毒灰鸽子木马示范
- Windows命令行调用windows 图片和传真查看器等
- TB,PB, Eb, Zb, YB
- douban movie top of Web Crawler
- 小巧的menuetOS
- Bugku CRYPTO No Ciphertext RSA writeup by 树木
- ubuntu显卡的参数说明
- 江南,我愿变成你怀中的一枝青莲
- 985院校计算机保研er如何冲刺清北?
- Simpsons’ Hidden Talents(辛普森一家的隐藏天赋 )(kmp经典模板题) HDU - 2594
- 两台计算机如何连接成网络错误,常见网络(连接)错误的解决方法
- iOS开发 国际化/多语言适配
- MT4错误代码最完整汇总
- Google SEO官方《搜索引擎优化指南》(6): 写好锚文本
热门文章
- 嵌入式基础认识1:存储器(如RAM、ROM和FLASH)
- 将python代码编译成.so文件
- 常用的匹配正则表达式
- Linux io内存存在的意义~
- 第4章 原子操作 第二节
- opencv 二值化_Python-OpenCV获取图像轮廓的图像处理方法
- nedc工况_东南DX3 EV续航升级 NEDC综合工况续航451公里
- python 交互式可视化库_Python 交互式可视化库
- 【Pytorch神经网络理论篇】 12 卷积神经网络实现+卷积计算的图解
- 【Pytorch神经网络理论篇】 07 激活函数+Sigmoid+tanh+ReLU+Swish+Mish+GELU