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