Python 定义类或函数都没有用大括号,格式岂不是很容易乱掉?

14 天前
 chenzw2
class Animal():
    # 私有属性
    __age = 10

    # 构造方法
    def __init__(self, name):
        self.name = name

    def eat(self, food):
        self.food = food

如上代码,如果稍微少个缩进,整个代码就无法运行,而且有时候难以识别。我常用 IDEA 的 CTRL+SHIFT+F 进行代码格式化,少个缩进整个代码都不好了,大家有什么好的使用经验,刚接触 python 小白一个,勿喷!

2270 次点击
所在节点    Python
40 条回复
liprais
14 天前
游标卡尺你值得拥有
LieEar
14 天前
没啥好办法,所以是“面向游标卡尺编程”。有没有大佬补充
freshgoose
14 天前
我们都是左手拿尺,右手打码,一边量一边打
thinszx
14 天前
我写 python 写多了反而觉得好像看大括号不习惯了,我使用的习惯就是尽可能先写类和函数定义,然后再写函数内容,写完一个函数测试没问题就把它折叠起来了

不过我也确实经常遇到折腾老半天最后发现是缩进问题...语言就这样,你还能咋办呢...
javak
14 天前
多写,当你写的足够多了,你就可以一眼就看出缩进问题,就不需要游标卡尺了。
jianchang512
14 天前
除非你是使用记事本的大神,否则任何一个支持 python 的编辑器都能很好的对齐,或者有辅助线
LK99
14 天前
缩进有问题,换 IDE !
flyqie
14 天前
所以这也是为什么现在许多语言都不这么干了。。

因为很不方便,大括号做代码段的格式化会非常方便,空格就不是那么好办了,而且大括号不会导致 tab 和空格之间的混用问题(虽然很讨厌混用)
body007
14 天前



vscode 和 idea 都能启用显示空白字符,这样应该容易一些,不过 python 格式就这样,我遇到需要滚动的代码,对齐确实麻烦点。
customsshen
14 天前
我个人对于代码优雅的审美观念,就是越少符号越 pythonic
NoOneNoBody
14 天前
报错会提醒是哪一行缩进不对的
woodfizky
14 天前
你都用 Idea 了,你试试用 pycharm 呗,缩进这种基础问题 IDE 会帮你找出来报红的。

ctrl + shift + L 自动格式化
ctrl + shift + O 自动优化 imports

也可以装插件。
woodfizky
14 天前
@woodfizky
不过长代码确实靠缩进定位很蛋疼,但是 IDE 也是贴心的提供了一条竖线可以定位的。
还有就是分享的时候,某些情况会丢格式,那这样 python 缩进就不见了,代码也乱了。
sucaiking
14 天前
彩虹缩进
june4
14 天前
@NoOneNoBody 那也不一定,除非缩进那行引起了语法错误,但大部分时候可能并没有语法错误,比如 if/while 语句这种
javazero
14 天前
vscode 的话可以直接规范缩进,习惯之后还是很清晰的
hackyuan
14 天前
刚接触前端时用的 pug 、stylus 也是这样,当时觉得靠缩进很酷与众不同。

后面代码量上来了,看自己的难受,看别人的根本不想看,就找几个晚上全给它改掉了,真是折磨。
lingeo
14 天前
缩进不都是以 4 个空格为单位吗? IDE 基本帮你适配好了,一个 tab 就搞定了,你写其他代码没有养成 tab 缩进习惯吗?
NoOneNoBody
14 天前
@june4 #15
没有执行错误就只能靠 IDE+扩展,pyright 可以提醒,如果是逻辑错误那就没办法

其实用括号也有相似问题,我有次 js 也是遇到没有执行错误但结果不对的,查了很久就是括号定位不对——之前修改的时候删错了,但碰巧又配对了,结果两个代码块一起执行了
Sawyerhou
14 天前
习惯了就好了,用多之后根本不会少缩进,读码也本能反应,偶尔复制粘贴会落个缩进什么的,回头扫一眼就会发现,看起来非常突兀。敲其他大括号语言也强迫症式对齐,不然浑身不舒服。

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

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

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

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

© 2021 V2EX