1 简介
在日常编写Python
代码的过程中,由于个人经验及编程习惯上的差异,有些人写出的代码可读性很高,一眼看上去就非常整洁易懂,而有些人写出的代码则十分“潦草随意”,读起来颇为费劲。
想要写出格式工整、可读性强的Python
代码,除了需要在编写大量代码的过程中逐渐养成良好习惯外,还可以结合代码格式化工具实现代码的自动格式美化,经典的Python
代码格式化工具有autopep8
、black
、yapf
等,均可在vscode
、pycharm
等主流ide
中安装相关插件进行快捷使用。
而去年大火的代码静态分析工具ruff
,主要功能中也包含了代码格式化功能,由于其底层基于rust
编写,因此执行相关功能时的运算速度超快,据官方称可达到其他同类型工具的10~100倍之多⚡,今天的文章中,费老师我就将为大家介绍基于ruff
的代码格式化常用功能 。
2 使用ruff进行Python代码格式化
2.1 ruff的安装
在主流的ide
中,我们可以直接安装ruff
相关插件,以vscode
为例,在拓展中搜索ruff
进行安装即可:
2.2 ruff代码格式化常用功能
2.2.1 直接使用
默认条件下,安装完ruff
插件后,在vscode
中就可以直接使用快捷键shift+alt+f
,针对当前编辑中的py
文件进行格式美化,举个例子,假设我们原始的Python
代码格式“一不小心”写成了下面的 样子:
import os
# 提取目标路径下各文件的创建时间及最近修改时间
target_path ="target_path"
# 需要排除的文件拓展名
ignore_file_types =['.mp4','.avi', '.rmvb'
]
# 结果元组格式:(文件名,创建时间,最近修改时间)
files=[(file,os.path.getctime(os.path.join(target_path,file)),os.path.getmtime(
os.path.join(target_path,file) )) for file in os.listdir(target_path)
# 判断当前文件名是否为文件,且不在排除拓展名列表中
if os.path.isfile(os.path.join(target_path, file)) and
not any(file.endswith(ext) for ext in ignore_file_types
)]
在按下快捷键shift+alt+f
后,心情顿时舒畅了~
2.2.2 配置格式化规则
ruff
默认的格式化规则基本上兼容black
,但如果你想要「自定义」调整部分的格式化规则,譬如在引号的使用上,你更倾向于使用单引号,在ruff
中也可以很轻松的实现。
ruff
中推荐以具体的「项目」为控制范围,通过在「项目根目录」中创建pyproject.toml
或ruff.toml
来编写具体的规则,譬如在下面的示例ruff.toml
文件中,我们声明了优先使用单引号:
❝ruff.toml
❞
[format]
# 使用单引号
quote-style = "single"
格式化结果中就会对应的优先使用单引号:
或是限制每行最多字符数量:
❝ruff.toml
❞
# 限制每行最多20个字符
line-length = 20
[format]
# 使用单引号
quote-style = "single"
设置缩进使用单个Tab
符(默认为4个空格):
❝ruff.toml
❞
[format]
# 使用单引号
quote-style = "single"
# 缩进使用单个tab
indent-style = "tab"
且ruff
还支持对docstring注释中的代码片段进行识别并格式化:
❝ruff.toml
❞
[format]
# 使用单引号
quote-style = "single"
# 启用docstring代码片段格式化
docstring-code-format = true
更多有关ruff
代码格式化功能的细节,请移步The Ruff Formatter - Ruff了解更多。
最后,这里分享给大家一套免费的学习资料,包含视频、源码/电子书,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以加我微信一起来学习交流。
① Python所有方向的学习路线图,清楚各个方向要学什么东西
②Python、PyCharm学习工具包全家桶,环境配置教程视频
③Python全套电子书籍PDF,全部都是干货知识
④ 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
⑤ 100多个Python实战案例,学习不再是只会理论
全套Python学习资料分享:
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
四、入门学习视频全套
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
五、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
希望这些内容对大家有所帮助,因为你我都是热爱python的编程语言爱好者。