不想被缩进束缚,有个想法,想做一个有 { } 的 Python 版本或者编译插件, 现在有类似的解决方案吗?

2017-12-30 19:01:40 +08:00
 xiaoyanbot

不想被 python 的缩进给束缚,

看到有 python 的一些格式的插件,目前有解决方案吗? 拿 { } 来搞代码段结构

5347 次点击
所在节点    Python
44 条回复
selfAccomplish
2017-12-31 10:20:42 +08:00
难道老铁们不知道 Pycharm 按 ctrl+alt+L 可以自动格式化(换行、80 个字符自动换行等)?
QAPTEAWH
2017-12-31 11:19:11 +08:00
)))))))))))))))))
zhicheng
2017-12-31 13:55:44 +08:00
不如试试 Lemon http://www.lemon-lang.org/
guog
2017-12-31 14:13:39 +08:00
@zsdroid 你理解错了我的话。再说下,其他语言只是不用缩进来做语义分析,你写代码是给人看的,用了分号和大括号就能挤在一起写了吗?就能上行缩进俩字符,下行 tab 吗?反正都要缩进,何不整的统一点,看的也舒服些。
xpresslink
2017-12-31 14:44:01 +08:00
其实自己写 Python 代码和维护的时候,强制缩是有好处的。
只是在交流沟通时会有一些障碍,因为很多论坛和在线编辑器会清除前导空格,
这对于 Python 代码会造成非常大的理解困难。
有了{}辅助以后即使缩进没有了也比较容易用 IDE 恢复缩进格式。
其实 Python 还可以当成 Ruby 那样用的。

__builtins__.end = None

def test(x):
if x > 0:
print("a")
else:
print("b")
end
end


def main():
test(1)
print('I can use end!')
end

main()
zsdroid
2017-12-31 15:06:26 +08:00
@guog 怎么统一?用大括号,左大括号换不换行都争个你死我活,谈何统一。。。
像你说的那样"写代码是给人看的",我也赞同
但 python 却很坑爹,python 的理念是"代码是个机器看的",
这就是 python 的最大问题
guog
2017-12-31 15:24:12 +08:00
@zsdroid 2333 大括号的问题🌚所以抛弃吧
wangxiaoer
2017-12-31 15:28:04 +08:00
格式化应该是 ide 负责,当然你可以手动管理,但 py 的手动格式化就等于人肉 parser, 这也合理??
别外,2018 年了,还拿每行 80 个字符说事,真的能办?我都设置的每行 200 个字符。
AlwaysBehave
2017-12-31 16:25:32 +08:00
@wangxiaoer 赞同
@zsdroid 嗯,我觉得代码还是可以有一点个人风格?
有人喜欢 tab 有人喜欢左括号换行,代码上传前可以说用 CI 统一一个规范
但是下来我自己编辑的时候,我喜欢怎么样设置好 IDE 让他一键排版成我喜欢的样子我觉得很正常
然后就是每次想要在 python 中间某个地方插一行东西的时候总是要看几遍缩进
尤其是鼠标点的时候(应该是我姿势不对
codehz
2017-12-31 16:50:32 +08:00
@AlwaysBehave #29 你大概需要一款只储存 AST,而不存储实际代码的编程语言
aristotll
2017-12-31 17:22:20 +08:00
虽然缩进作为语法一直是个槽点 不过要上 Python 这个贼船 还是只能忍吧
xavierskip
2017-12-31 17:28:02 +08:00
缩进会束缚你的什么?不明白?

还是你的思想会被缩进束缚?
Arnie97
2017-12-31 20:27:27 +08:00
@guog @zsdroid #26 把大括号位置定死在语言规范里就行了,参见 Go 语言
fy
2017-12-31 20:50:38 +08:00
有点难,不光是语法问题,还有一个声明范围的问题
zsdroid
2017-12-31 20:57:12 +08:00
@xavierskip 束缚什么??,一千个读者有一千个哈姆雷特,凭什么一千个读者的思想必须一致
xavierskip
2017-12-31 21:04:09 +08:00
@zsdroid #35 是呀,所以有一千个编程语言。但是所有使用 Python 的必须要用缩进,而且,有的人用 tab 缩进,有的人用空格缩进。

你别先射箭再画靶子。

我的结论:如果你纠结点在于到底要不要用缩进,那就别用 Python 了,那么多语言可用。如果你觉得缩进不舒服但是用起来能够解决问题那么你还纠结个什么。一个取舍而已。
zsdroid
2017-12-31 21:16:20 +08:00
@xavierskip 我纠结的是为什么 python 要这么设计
xavierskip
2017-12-31 21:26:20 +08:00
@zsdroid #37 文档中是这么说的 https://docs.python.org/3/faq/design.html#why-does-python-use-indentation-for-grouping-of-statements

简单点说就是:创始人就是这么设计的。
有优点也有缺点。你可能认为这是个 bug,其实这是个 features
然后你上面说的『 python 的理念是"代码是个机器看的"』应该是"代码是给人看的"吧
lrxiao
2018-01-01 08:49:26 +08:00
对齐大括号互用..要不您试试 haskell
lrxiao
2018-01-01 08:50:47 +08:00
而且 py {}给 set 和 dict 用了 你这个 parser 怎么写。。

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

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

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

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

© 2021 V2EX