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

2024-06-12 15:27:29 +08:00
 chenzw2
class Animal():
    # 私有属性
    __age = 10

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

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

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

3511 次点击
所在节点    Python
40 条回复
yolee599
2024-06-12 16:32:41 +08:00
fields
2024-06-12 16:33:19 +08:00
设置一下 tab 变成 4 个空格 缩进 py 特色
InkStone
2024-06-12 16:33:47 +08:00
其实写习惯了并不会有什么困扰,别嵌套太多层,没那么容易写错。

这玩意儿主要的问题还是:跟现代 IDE 协作不太好。写其它语言很多时候先复制一段代码然后 format 来自动调整,但 python 里就没法这么干
Nazz
2024-06-12 16:33:58 +08:00
换语言吧, 来学 go
lolizeppelin
2024-06-12 16:47:03 +08:00
有啥难受的,写作文不是靠缩进分段么

一个道理,缩进层级很多说明你代码设计又问题
lisxour
2024-06-12 17:27:28 +08:00
@lolizeppelin 三四层的很正常好吧
Goooooos
2024-06-12 17:30:14 +08:00
if a:
doA()
doB()

被改为
if a:
doA()
doB()

这种情况是最难一眼看出问题的
Goooooos
2024-06-12 17:30:53 +08:00
@Goooooos
if a:
··doA()
··doB()

被改为
if a:
··doA()
doB()
vialon17
2024-06-12 17:37:56 +08:00
@Goooooos #28 的确,这种代码一旦丢失缩进就很难复原,需要和业务逻辑结合,这也是缩进的最显著弊病之一。
z1645444
2024-06-12 17:57:38 +08:00
有些论坛和社交软件,发送的代码片段,不知道是发送者自己现场写懒得缩进还是复制过去文本内容被平台格式化导致丢失缩进,发文效果大致 #27 ,如果是不使用一对符号标记作用域的语言,看得难受死
Donahue
2024-06-12 18:12:46 +08:00
我觉得还好,每个方法尽量不要写太长就还行
hhhzccc
2024-06-12 18:15:00 +08:00
pycharm 会自动显示的。
shiquda
2024-06-12 18:15:54 +08:00
xgdgsc
2024-06-12 18:35:35 +08:00
在其他不用缩进的语言里调也不失为一种方法 https://github.com/JuliaPy/PythonCall.jl
DOLLOR
2024-06-13 12:54:47 +08:00
你就当格式化工具不存在吧,自己一边写代码,一边人肉自己格式化自己写的代码。
(或许这就是 python 这么设计的初衷
deplives
2024-06-13 14:02:47 +08:00
这个构造方法的注释有点绷不住了
cybort
2024-06-13 18:43:07 +08:00
ide 给力的话其实差不多,比较长的 c 代码你也不可能去数括号。说白了这个更多是给编译器准备的
ClericPy
2024-06-13 23:04:12 +08:00
1. 显示空格
2. 彩虹缩进
3. 格式化工具 ruff
4. linter ,有个 linter 缩进有问题还没运行就标红了
5. 其他方案
wryyyyyyyyyyyy
2024-06-20 10:20:16 +08:00
写多了,ide 红线一眼就能看出来
mcgga
2024-06-26 15:06:00 +08:00
1. IDE 有缩进颜色的插件
2. 少一些嵌套,缩进的层级自然就少了。两三层及的缩进,完全不影响。要是七八层的,这种代码就有问题,过不了 review

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

https://ex.noerr.eu.org/t/1048930

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

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

© 2021 V2EX