不太明白那些讨厌 python 缩进的人

2014 年 12 月 18 日
 ToughGuy
python缩进除了没有花括号以外感觉也没多大差别嘛? 我觉得这是一个很奇怪的问题!

def abcd() {
....
....
....
}
for (x in y) {
....
....
....
}

# 放弃缩进,你这代码还是给人看的么?


def abcd():
....
....
....

规规矩矩缩进, 我就不要花括号。

def abcd(): { ....; ....; .... }
def abcd(): ....

还是你们喜欢把代码写到同一行里面?


他们讨厌(喷)python缩进的原因是因为他们写代码从来不缩进吗? 行为艺术, 无脑喷? 我是搞不懂 -_-!
16439 次点击
所在节点    Python
123 条回复
wizardoz
2014 年 12 月 18 日
那些说空格丢失的。空格是代码的一部分怎么能丢失呢?如果C语言的花括号丢失了,你倒是解决给我看啊。
tftk
2014 年 12 月 18 日
我不讨厌缩进,有时候也喜欢花括号。
cctvsmg
2014 年 12 月 18 日
python是伪装成编程语言的宗教
icylogic
2014 年 12 月 18 日
@dkw72n 好吧,其实我在黑lisp和js
pathletboy
2014 年 12 月 18 日
@wizardoz 你自己#40说的不就丢失了,不丢失你插什么。。。
invite
2014 年 12 月 18 日
@ToughGuy 所以,有的人编辑器用tab缩进,有的人用空格缩进,编辑相互之间的代码,怎么整?
RemRain
2014 年 12 月 18 日
@wizardoz 你看楼主贴的代码,空格不是很明显地丢掉了么?C 的那段,花括号还在啊
useyes
2014 年 12 月 18 日
果断转到 Ruby。
caiych
2014 年 12 月 18 日
@icylogic 还有>>>>>
Cu635
2014 年 12 月 18 日
很显然,缩进的字符(空格、tab)属于空白字符,在各种处理的时候很容易丢掉。
python用tab缩进,tab也是空白字符,可能会被当作空白字符丢掉。

而python用tab作为分块的依据,tab是代码的一部分,丢掉了之后信息丢失了,恢复很不容易。

而像C/C++/Java这类用花括号做分块的,花括号不是空白字符,几乎不会被丢掉,而缩进丢掉了只是难看问题,完全可以用脚本通过括号重新建立缩进,改善阅读性。
bugeye
2014 年 12 月 18 日
对我来说很简单,10多年前有人给我推荐python,我看了一眼,居然是空格嵌套。直接pass。到现在依然。反正我不相信这世界上靠{}的语言会绝种。有得用就可以了。我不相信C/java/C++/JS/golang/perl会完成不了python能做的事。

不介意的就用python,介意的就不用,非常简单。我就是讨厌空格嵌套,你咬我?
RemRain
2014 年 12 月 18 日
@dant 这个回复貌似是我首创的诶~

@ToughGuy 我有一个很大的 py 文件,本来里面没有 if else,也没有缩进的。后来有人往里面加了段代码,直接 svn ci 了;后来又有人加了段代码,也 svn ci 了;再后来我也加了段代码,svn ci 的时候提示有更新,我就没管,svn up 后也 ci 了。现在代码根本跑不起来,因为第一个家伙用的 2 个空格作缩进,第二个家伙用的 4 个空格作缩进,而我用的是 tab 缩进,怎么办啊?

不用 tab 作缩进的都是异教徒,都应该绑起来烧死啊
ChiangDi
2014 年 12 月 18 日
啊,看到这种圣战帖就热血沸腾了!!
sneezry
2014 年 12 月 18 日
空格和tab有时眼睛看不出区别,一个tab和4个空格一般一样长,但是表示两个不同的层级
bugeye
2014 年 12 月 18 日
@Cu635 不止是{}不容易丢,就算丢也就1个2个,还比较容易修正。tab,空格之类本来就是html无视的字符,一丢起来就全盘没了。神才愿意去还原这种。
jarlyyn
2014 年 12 月 18 日
@dant
if (i<5) i++ returni,你也来处理下?
常见?字符丢失为什么会常见?难道你从网页上copy下来?
jarlyyn
2014 年 12 月 18 日
@bugeye 代码为啥会上html?这本来就是神思路吧?用花括号包括元素的模板/替换语法还少么?那是不是花括号也有问题?讨论代码说html绝对属于蛋疼……代码至少还有个<code>标签吧?
jarlyyn
2014 年 12 月 18 日
在这边说着花括号好的,这的没有在编辑器里利用括号配对一个一个对过括号么?特别是在一个代码copy到另一个代码段里面去的时候?比如node-js那一长串function?
kidlj
2014 年 12 月 18 日
Python的哲学是这样的:

既然只用缩进和冒号就能搞定代码分块的逻辑,为什么还再加上一层括号?
这就是大道至简。

喜欢简洁的人肯定都能看到Python的这种方式是最精简的。

举个简明的例子,一个数可能会有多个约数,但python提供的是那个最小公约数。
bugeye
2014 年 12 月 18 日
@jarlyyn 那我只能祝你永远别遇到处理这些问题的机会了。处理实际问题,有时候短信也是可以贴代码的。不见得在工作的时候都有办法上网,都有办法有一个可以处理code之类的浏览器,也不见得你的队友不是白痴。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/154801

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX