原来Python的缩进就是个坑啊

2013-06-27 14:50:21 +08:00
 io
刚开始学Python的时候,感觉把代码的外观也当作语法的一部分真是既优美又优雅,但后来越用越发觉,用缩进来表示代码之间的关系让代码变得脆弱不堪,还是花括号比较强壮,只要花括号括对了,空格,TAB随意折腾……
缩进错误应该是pythoner报错次数最多的错误吧。
21395 次点击
所在节点    Python
51 条回复
ushuz
2013-06-27 17:21:26 +08:00
空格和Tab很难处理么?
把tab设为4个空格,这是良好的习惯,看过pep8的写出来的代码都应该是4个空格缩进。就好像你不会在python里把self写成this一样。
即使偶尔碰到奇葩,把 \t 替换成4个空格也不难。

@loading 握手,同用notepad++。
ericFork
2013-06-27 17:24:20 +08:00
python-mode 自带的 PyLintAuto 配置一个热键,一键 pep8;
:w 自动进行 pep8 检查,有问题会高亮标出,移过去可以显示原因
Fedor
2013-06-27 17:32:13 +08:00
是让养成代码不规范习惯的人买单的大坑!
chon
2013-06-27 17:34:35 +08:00
> 缩进错误应该是pythoner报错次数最多的错误吧
正常Python程序员都不会犯缩进错误,自己不会用怪谁…
ipconfiger
2013-06-27 17:41:25 +08:00
只有c-c c-v黨的異端才會感覺縮進不對,也只有c-c c-v黨才會在縮進的地方被坑。tab什麼的連個編輯器都設置不正確的,竊以爲比這個高級點的錯誤那還不是一籮筐一籮筐的犯。
nichan
2013-06-27 17:50:55 +08:00
除了刚开始那几次,几乎从来没犯过缩进错误,编辑器会自动帮我缩进的……
Muninn
2013-06-27 17:57:18 +08:00
大家都是4个空格的
配置好编辑器从来不会有问题
你不信可以去github看看
哪来的那么多问题...
我反正几乎没报过缩进错误
yeelone
2013-06-27 18:00:18 +08:00
@vigoss 所以尽最大的量,要把函数 保持在二三行之内吧
lerry
2013-06-27 19:41:55 +08:00
@alexrezit 我tab设置的4个空格
darasion
2013-06-27 19:45:25 +08:00
其实python应该一开始设计的时候就:

硬性规定必须是空格 。
或者
硬性规定必须是tab。

这样就不用纠结到底用哪个了,也不必要争论了。
hahastudio
2013-06-27 22:32:28 +08:00
其实我一直认为Python的缩进对程序员来说根本不算要求
想我学Python之前C就已经是严格缩进的,自己日后看代码多舒服,要不还得自己拆来拆去
hooluupog
2013-06-27 23:02:26 +08:00
我觉得end和花括号都比空格缩进强。代码量少了无所谓反而很整洁,代码量大了再混合其他语言代码就弊大于利了。而且ide无法对其自动缩进。。。
chshouyu
2013-06-27 23:41:47 +08:00
有严重强迫症的在下表示python的缩进甚得我心
zealinux
2013-06-27 23:43:09 +08:00
巨讨厌别人没有缩进的代码,即便是标签类的html文件,
没有一点审美吗,没有一点原则吗。
darklowly
2013-06-28 00:04:05 +08:00
@chshouyu 我就有代码强迫症,但是我讨厌python的缩进,写出的代码既没有美感,也容易出问题。
mengzhuo
2013-06-28 00:14:10 +08:00
pyflask Pylint各种插件提前检查

对于Python的缩进就有意见的肯定是代码新手

不管任何一门语言,统一缩进都是良好的风格
去看看Linux内核代码(C),Wordpress(PHP),Gnome(JavaScript),哪一个不是良好缩进,else都要保持同一列

if (){

} else {

}

代码是给后来人看的,不是用来装酷的方便自己写得轻松的
reusFork
2013-06-28 00:28:25 +08:00
最多?我只碰到过一次,就是第一次维护别人的代码的时候
caoyue
2013-06-28 00:38:35 +08:00
其实花括号在自动格式化的时候还是挺有用的,但是一旦在一大堆嵌套的括号中间不小心删掉了一个……
缩进其实不算问题,好的习惯加上编辑器设置很容易解决
luikore
2013-06-28 00:58:18 +08:00
楼主适合用 ruby, 因为省略括号的地方和 python 不同(函数调用)所以不是缩进敏感的...
ivenvd
2013-06-28 01:19:32 +08:00
写 Python 缩进有问题的人,写 C 也会忘括号吧。感觉这是有没有良好编码习惯的问题,跟语言无关……

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

https://www.v2ex.com/t/73823

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

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

© 2021 V2EX