原来Python的缩进就是个坑啊

2013-06-27 14:50:21 +08:00
 io
刚开始学Python的时候,感觉把代码的外观也当作语法的一部分真是既优美又优雅,但后来越用越发觉,用缩进来表示代码之间的关系让代码变得脆弱不堪,还是花括号比较强壮,只要花括号括对了,空格,TAB随意折腾……
缩进错误应该是pythoner报错次数最多的错误吧。
21395 次点击
所在节点    Python
51 条回复
swulling
2013-06-27 14:56:00 +08:00
你需要一个能检查缩进错误的IDE/Editor

IDE 推荐PyCharm
Editor 推荐 vim + vim-flake8
io
2013-06-27 14:59:10 +08:00
@swulling 没搞过那么高端的玩意儿,一直用Notepad++…… 我试试去
xzl
2013-06-27 14:59:18 +08:00
存在即合理。
cxshun
2013-06-27 15:00:47 +08:00
缩进的代码看起来是舒服很多的啊,话说如果用TAB来缩进的话,一般问题不大的。
amyangfei
2013-06-27 15:01:54 +08:00
用各类pep8 插件还是很舒服的。
est
2013-06-27 15:07:34 +08:00
参考python八荣八耻

> 缩进错误应该是pythoner报错次数最多的错误吧。

缩进错误是不合格码农的表现。
F0ur
2013-06-27 15:11:09 +08:00
同意楼上
有花括号不代表缩进就可以随意
如果是TAB、空格混用的问题,建议IDE设置TAB=4个空格这样
lerry
2013-06-27 15:21:32 +08:00
使用配置好的vim 和 sublime ,从没遇到过缩进问题
aisensiy
2013-06-27 15:22:08 +08:00
@est
@F0ur

可能代码不是你写的,风格不一致也是常有的问题。有的时候是 tab 有的时候是 空格。别人的 repository 你不能会所拿来代码就把所有的都格式化一遍。
lerry
2013-06-27 15:22:08 +08:00
coffee 也是用缩进分割代码层级的
vigoss
2013-06-27 15:23:25 +08:00
缩进的坑应该是遇到代码块过长超过一屏时实在是不好看
wenbinwu
2013-06-27 15:37:57 +08:00
呵呵,我现在基本上n多天才会看到一个缩进错误
alexrezit
2013-06-27 15:40:24 +08:00
@lerry
看别人的代码很烦. 我平时都是 space * 4 的, 很烦 tab.
uchan
2013-06-27 15:57:04 +08:00
python的脚本是可以整成一行的哦
yakczh
2013-06-27 16:06:51 +08:00
坑你没商量
Golevka
2013-06-27 16:19:24 +08:00
为那些可以用CFG描述代码层次的语言编写代码生成器就可以很随意, 但是为python编写的codegen就必须附带一个严格的pretty printer, 因为没有人能帮你自动做pretty printing
dreampuf
2013-06-27 16:57:31 +08:00
set shiftwidth=4
set tabstop=4
set softtabstop=4
set expandtab
set smarttab
set list
set list listchars=tab:<+

从此再也没碰到过缩进问题。
一旦出现这种问题就需要考虑拆分逻辑

垠神又会吐槽你们,不就是一个AST构造表达,叫你们瞎折腾,还是好好的回去打你们的小括号去吧!骚年
loading
2013-06-27 17:02:27 +08:00
notepad++不是理由,我一直都是用它写python的,在"首选项","语言"里选"用空格取代",标签尺寸设为4
for4
2013-06-27 17:05:48 +08:00
从这点上来说 golang 是做得最好的语言. 自带个gofmt, 连 import的先后顺序都给自动调整的
BOYPT
2013-06-27 17:08:08 +08:00
编辑器都不会玩的好还指望写好代码。

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

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

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

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

© 2021 V2EX