社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python使用强制缩进算不算一个败笔

Python编程 • 2 年前 • 323 次点击  
来自公众号:Python之禅

在CSDN看到一个关于Python之父Guido的采访,主持人问到Python 这门语言采用强制代码缩进,如果重来一次会不会放弃这个限制?

Guido是这样回答的

代码缩进(Indentation)其实并不是我发明的,当时的同事给了我启发。在 Python 中要求进行代码缩进的原因是 30 年前的代码编辑器都不能很好地对代码进行缩进排版,所以我就想鼓励程序员自己来对代码进行正确的排版,从而确保程序员从视觉上对代码的理解与编译器对代码的解析是一致的。这其实非常重要,几年前苹果公司就发生过一次非常严重的代码安全漏洞事故,就是由于代码中一个语句与程序员实际设想的 if-else 语法逻辑没有匹配而引起的,其实,严格要求代码缩进确实有点夸张,改用花括号,也不是不可以。

从Guido的回答来说,如果放在今天或者哪怕20年前,我估计他不会用强制缩进来规范代码了。毕竟现在的代码编辑器和30年前相比已经发生了翻天覆地的变化,代码自动格式化都是小儿科。

而对于是否应该强制缩进,程序员持有两种完全相反的观点,一种觉得完全无法接受强制缩进,凭啥多敲一个空格就不行呢?为此还劝退不少人。喜欢的则认为这是python的一大特点,代码看起来整齐舒服。

我记得第一次接触Python时,发现需要用强制缩进来分隔代码块,不对齐就报错,为此惊讶不已。不过写出来的代码确实整齐划一,反观大括号,还在为到底要不要换行显示争论不止

if (a>b){
   //
}

还是

if(a>b)
{

}

从另一方面来说,缩进也有纠结的地方,缩进到底是用tab缩进还是用空格缩进,缩进时用几个空格,语法上并没有做要求,PEP8建议每个缩进级别采用4个空格,通常IDE可配置成一个Tab等于4个空格

不过强制缩进一点也没有影响它成为最流行的语言(之一)

对此你有什么看法

--- EOF ---


推荐↓↓↓

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/150018
 
323 次点击