class Animal(): # 私有属性 __age = 10 # 构造方法 def __init__(self, name): self.name = name def eat(self, food): self.food = food
如上代码,如果稍微少个缩进,整个代码就无法运行,而且有时候难以识别。我常用 IDEA 的 CTRL+SHIFT+F 进行代码格式化,少个缩进整个代码都不好了,大家有什么好的使用经验,刚接触 python 小白一个,勿喷!
![]() | 1 F281M6Dh8DXpD1g2 2024-06-12 15:29:50 +08:00 ![]() 游标卡尺你值得拥有 |
![]() | 2 LieEar 2024-06-12 15:30:13 +08:00 没啥好办法,所以是“面向游标卡尺编程”。有没有大佬补充 |
3 freshgoose 2024-06-12 15:31:34 +08:00 我们都是左手拿尺,右手打码,一边量一边打 |
![]() | 4 thinszx 2024-06-12 15:36:40 +08:00 ![]() 我写 python 写多了反而觉得好像看大括号不习惯了,我使用的习惯就是尽可能先写类和函数定义,然后再写函数内容,写完一个函数测试没问题就把它折叠起来了 不过我也确实经常遇到折腾老半天最后发现是缩进问题...语言就这样,你还能咋办呢... |
![]() | 5 javak 2024-06-12 15:38:31 +08:00 多写,当你写的足够多了,你就可以一眼就看出缩进问题,就不需要游标卡尺了。 |
6 jianchang512 2024-06-12 15:39:05 +08:00 除非你是使用记事本的大神,否则任何一个支持 python 的编辑器都能很好的对齐,或者有辅助线 |
![]() | 7 LK99 2024-06-12 15:39:27 +08:00 缩进有问题,换 IDE ! |
![]() | 8 flyqie 2024-06-12 15:41:22 +08:00 via Android 所以这也是为什么现在许多语言都不这么干了。。 因为很不方便,大括号做代码段的格式化会非常方便,空格就不是那么好办了,而且大括号不会导致 tab 和空格之间的混用问题(虽然很讨厌混用) |
![]() | 9 body007 2024-06-12 15:44:11 +08:00 |
10 customsshen 2024-06-12 15:54:40 +08:00 我个人对于代码优雅的审美观念,就是越少符号越 pythonic |
11 NoOneNoBody 2024-06-12 15:56:40 +08:00 报错会提醒是哪一行缩进不对的 |
![]() | 12 woodfizky 2024-06-12 16:05:08 +08:00 ![]() 你都用 Idea 了,你试试用 pycharm 呗,缩进这种基础问题 IDE 会帮你找出来报红的。 ctrl + shift + L 自动格式化 ctrl + shift + O 自动优化 imports 也可以装插件。 |
![]() | 13 woodfizky 2024-06-12 16:07:57 +08:00 |
![]() | 14 sucaiking 2024-06-12 16:14:18 +08:00 彩虹缩进 |
![]() | 15 june4 2024-06-12 16:15:51 +08:00 @NoOneNoBody 那也不一定,除非缩进那行引起了语法错误,但大部分时候可能并没有语法错误,比如 if/while 语句这种 |
![]() | 16 javazero 2024-06-12 16:18:09 +08:00 vscode 的话可以直接规范缩进,习惯之后还是很清晰的 |
![]() | 17 hackyuan 2024-06-12 16:18:44 +08:00 刚接触前端时用的 pug 、stylus 也是这样,当时觉得靠缩进很酷与众不同。 后面代码量上来了,看自己的难受,看别人的根本不想看,就找几个晚上全给它改掉了,真是折磨。 |
![]() | 18 lingeo 2024-06-12 16:21:55 +08:00 缩进不都是以 4 个空格为单位吗? IDE 基本帮你适配好了,一个 tab 就搞定了,你写其他代码没有养成 tab 缩进习惯吗? |
![]() | 20 Sawyerhou 2024-06-12 16:29:08 +08:00 习惯了就好了,用多之后根本不会少缩进,读码也本能反应,偶尔复制粘贴会落个缩进什么的,回头扫一眼就会发现,看起来非常突兀。敲其他大括号语言也强迫症式对齐,不然浑身不舒服。 |
![]() | 21 yolee599 2024-06-12 16:32:41 +08:00 |
![]() | 22 fields 2024-06-12 16:33:19 +08:00 设置一下 tab 变成 4 个空格 缩进 py 特色 |
![]() | 23 InkStone 2024-06-12 16:33:47 +08:00 其实写习惯了并不会有什么困扰,别嵌套太多层,没那么容易写错。 这玩意儿主要的问题还是:跟现代 IDE 协作不太好。写其它语言很多时候先复制一段代码然后 format 来自动调整,但 python 里就没法这么干 |
![]() | 24 Nazz 2024-06-12 16:33:58 +08:00 换语言吧, 来学 go |
25 lolizeppelin 2024-06-12 16:47:03 +08:00 有啥难受的,写作文不是靠缩进分段么 一个道理,缩进层级很多说明你代码设计又问题 |
![]() | 26 lisxour 2024-06-12 17:27:28 +08:00 @lolizeppelin 三四层的很正常好吧 |
![]() | 27 Goooooos 2024-06-12 17:30:14 +08:00 if a: doA() doB() 被改为 if a: doA() doB() 这种情况是最难一眼看出问题的 |
![]() | 30 z1645444 2024-06-12 17:57:38 +08:00 有些论坛和社交软件,发送的代码片段,不知道是发送者自己现场写懒得缩进还是复制过去文本内容被平台格式化导致丢失缩进,发文效果大致 #27 ,如果是不使用一对符号标记作用域的语言,看得难受死 |
31 Donahue 2024-06-12 18:12:46 +08:00 我觉得还好,每个方法尽量不要写太长就还行 |
32 hhhzccc 2024-06-12 18:15:00 +08:00 pycharm 会自动显示的。 |
33 shiquda 2024-06-12 18:15:54 +08:00 |
34 xgdgsc 2024-06-12 18:35:35 +08:00 在其他不用缩进的语言里调也不失为一种方法 https://github.com/JuliaPy/PythonCall.jl |
![]() | 35 AV1 2024-06-13 12:54:47 +08:00 你就当格式化工具不存在吧,自己一边写代码,一边人肉自己格式化自己写的代码。 (或许这就是 python 这么设计的初衷 |
36 deplives 2024-06-13 14:02:47 +08:00 这个构造方法的注释有点绷不住了 |
37 cybort 2024-06-13 18:43:07 +08:00 via Android ide 给力的话其实差不多,比较长的 c 代码你也不可能去数括号。说白了这个更多是给编译器准备的 |
![]() | 38 ClericPy 2024-06-13 23:04:12 +08:00 1. 显示空格 2. 彩虹缩进 3. 格式化工具 ruff 4. linter ,有个 linter 缩进有问题还没运行就标红了 5. 其他方案 |
39 wryyyyyyyyyyyy 2024-06-20 10:20:16 +08:00 写多了,ide 红线一眼就能看出来 |
40 mcgga 2024-06-26 15:06:00 +08:00 1. IDE 有缩进颜色的插件 2. 少一些嵌套,缩进的层级自然就少了。两三层及的缩进,完全不影响。要是七八层的,这种代码就有问题,过不了 review |