关于 Python 强制缩进的梗

2019-02-06 03:46:22 +08:00
 largecat
有些帖子吐槽 python 的缩进梗,特别提到一些大规模代码修改时候的痛苦。

我觉得写这个帖子的人估计是没有研究过祖传代码。
这个维护不是你找女朋友,床的时候只图做的时候爽,拍拍屁股走人,你还得考虑后续的责任问题。
我觉得吧,做的人自己改一下代码可能容易,虽然花点时间,但是这为后面阅读的人节省了大量的时间。

自由格式的代码改起来是快,任意插入代码不用花时间调整缩进,但是后面阅读的人就懵逼了。
你加结束码的时候应该体会一下后面数结束码的人的感受。
7535 次点击
所在节点    程序员
45 条回复
9hills
2019-02-06 03:57:12 +08:00
缩进只有在嵌套层级过多的情况下才会影响代码的修改效率。

如果每个文件最多两三百行,一个方法最多五六十行。缩进层级最多三四层。那么缩进根本不影响什么修改
largecat
2019-02-06 04:30:48 +08:00
其实回到原点了,好的编程习惯,比如规则的缩进,代码分层条理清晰模块化独立化,以及代码的注释,任何语言都没问题。
有文章说 py 的参数不写注释根本不知道什么类型,调整缩进巨麻烦,那我估计写这的都不是好习惯的程序员,写这些文章的人写的代码肯定绵长不绝,想起一出就插个代码都不管格式,积累个几年后正宗的祖传代码了。
msg7086
2019-02-06 05:50:57 +08:00
吐槽强制缩进 = 天天瞎瘠薄写代码不缩进?

你说规则的缩进没问题?我觉得我各种条理清晰的缩进说不定就会被 Python 认为是非法缩进了。
好的编程习惯不是语言强迫你按照他的习惯去缩进的理由。

另外说到后续责任的问题,测试覆盖、注释,这些比缩进重要多了。我拿到一个烂摊子,最最简单的就是处理缩进 —— 拿起编辑器里的格式化功能,一点,几千行代码就格式化完了。测试呢?注释呢?我能哪个按钮点一下就给我变出来吗?哪个重要哪个不重要还分不清吗。都在多人协作做项目了,何必还要在乎这种无关紧要的东西。
loading
2019-02-06 06:18:51 +08:00
gofmt,真香。
designer
2019-02-06 06:39:23 +08:00
缩进理念很好。但是强制很差。
但是把代码编辑器上互相复制就出现问题,无法运行。这个体验真的很差。
trait
2019-02-06 08:19:27 +08:00
楼主 2019 年了,各个语言格式信手胡写,格式化不过是 xxfmt 一个命令的事,python 强制锁进靠人眼 parse 是真的辣鸡
momocraft
2019-02-06 10:13:12 +08:00
其实为什么要设计成缩进表示 block ... 我暗自怀疑这个语法下只有最简单那些程序变得清楚了
0xABCD
2019-02-06 10:20:01 +08:00
缩进本来没问题,问题是为什么一直没有一个类似于 gofmt 一样的工具
largecat
2019-02-06 10:26:40 +08:00
其实这个话题可以归结为,
某些语言参数需要预定义的,他们就可以不用写注释吗?
py 参数无法确认是什么类型,所以需要写好注释,
这不就是同一件事吗?

某些语言不强制缩进,就不用缩进了吗?
py 强制缩进一样的效果,

最后的论点就是,大家都在做一样的事,但是有人拿这个当吐槽点,我也吃饭你也吃饭,一样的行为,你非得说我吃饭不好看。


但是特别是缩进又有一层好的意义,不排除一些程序员在大代码里加点油盐,他加可能要了一分钟,导致后面的人查清楚花了一个月的情况,我觉得强制不是更好吗?

不要提借助第三方工具,总有人偷懒或者犯错的时候。
largecat
2019-02-06 10:28:55 +08:00
@designer 你说的是从网页复制代码吧?如果是程序用的编辑器不可能有这个问题,如果真的有,那就是这个编辑器本身不支持 py,既然不支持 py,谁会用这样的编辑器写 py 代码?这不是伪命题么
Cbdy
2019-02-06 10:31:58 +08:00
说到底,Python 缩进就是个烂设计
notreami
2019-02-06 10:50:15 +08:00
@9hills 语言能解决的问题,要人来管理,这不就是烂语言
lihongjie0209
2019-02-06 10:54:20 +08:00
@notreami 人终究是不靠谱的
Yggdroot
2019-02-06 11:10:46 +08:00
吐槽强制缩进的应该是刚接触 Python 的,我刚接触时也吐槽过,慢慢习惯了后,就感觉不到跟其他语言有什么差别了。
largecat
2019-02-06 11:16:44 +08:00
@Yggdroot 并且使用久了后,觉得反而是个好东西,看起来很工整优雅,看别人代码的时候也不担心他的代码乱了,心里有点莫名的踏实感。
guokeke
2019-02-06 11:17:16 +08:00
yapf ?
guokeke
2019-02-06 11:18:20 +08:00
缩进真没啥好吐槽的。。。
lihongjie0209
2019-02-06 11:22:59 +08:00
@largecat 你没用过 ide 的自动格式化吗?
aijam
2019-02-06 11:24:05 +08:00
反对任何支持用 tab 缩进的语言,我不是说特定的某个语言,我是说在座的各种语言都是垃圾。
designer
2019-02-06 11:25:53 +08:00
@largecat
首先我非常喜欢 python,只能说楼主有自己的完美主义癖好就好了。尊重你的想法。也请你尊重别人的想法。对于新手缩进造成的问题绝对是有的。提倡缩进不能强制缩进这是我的观点,萝卜青菜各有所爱。不再回复

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

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

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

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

© 2021 V2EX