找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 2099|回复: 1

Python PEP8规范科普

[复制链接]

2

主题

9

回帖

78

积分

版主

积分
78
发表于 2-9-2025 23:21:29 | 显示全部楼层 |阅读模式
本帖最后由 C0mp1ler 于 2-9-2025 23:34 编辑

”过早优化是万恶之源。” ——Donald Knuth

我对那些深耕算法领域的大佬们充满敬仰——他们能在有限的计算资源和时间内,写出一个个高效的算法来提升AI的智能水平。没有人反对追求性能极限:毕竟多线程计算、内存占用、响应速度等方面的优化是一个项目成功的关键。

然而,尽管算法优化的重要性毋庸置疑,但我始终认为,代码可读性也是任何程序开发中不容忽视的核心要素。五子棋论坛中对于算法的讨论如火如荼,却鲜少有人关注代码可读性方面的优化。可读性差的代码不仅让其他人难以理解,更阻碍了自己对其后期的维护与拓展。

代码是与人合作的工具,它绝不应仅仅服务于机器。倘若将最完美的算法淹没在晦涩难懂的格式中,其也很难得到充分的利用。我们必须在追求性能的同时,保持代码的简洁、清晰和可维护性。

PEP 8(Python Enhancement Proposal 8)是 Python 编程语言的官方风格指南,旨在通过规范代码格式,提高 Python 代码的可读性和一致性。它提供了一组建议,涵盖了 Python 编码的各个方面,包括代码布局、命名约定、注释风格等。遵循 PEP 8 可以让 Python 开发者编写的代码更加清晰、易于维护。








2

主题

9

回帖

78

积分

版主

积分
78
 楼主| 发表于 2-9-2025 23:32:22 | 显示全部楼层
本帖最后由 C0mp1ler 于 2-9-2025 23:33 编辑

1.代码布局:
缩进:使用 4 个空格来缩进代码,避免使用制表符(Tab)。
(老实说,我不敢相信有人会不厌其烦地敲四个空格,尤其是在代码嵌套了数不清的循环和判断时。但理论上来讲,使用tab可能会出现以下问题:
使用空格能够确保代码在任何编辑器中都能保持一致的显示效果。某些编辑器中,一个 Tab 可能等于 4 个空格,而在其他编辑器中则可能是 8 个。如果团队成员使用不同的编辑器,代码格式就会变得不一致,增加理解和修改代码的难度,可能会出现难以识别缩进错误的问题)

行长:每行代码的长度不超过 79 个字符,文档字符串(docstring)最长 72 个字符。

空行:
函数和类之间要使用两个空行。
方法定义之间使用一个空行。

行内缩进:对于函数参数或长列表等,避免单行超过 79 个字符,采用适当的换行和缩进。


2. 导入语句
导入语句应该放在文件的顶部,紧接着模块级文档字符串(如果有的话)。

应按顺序排列导入:标准库导入、第三方库导入、应用程序自定义模块导入,之间要有空行。(翻译,不建议写import pygame, sys)
避免使用 from module import * 这种方式,它会引入不必要的命名空间。


3. 空格使用
操作符周围:二元操作符(如 +, -, *, / 等)前后要加空格。
例:
x = 1 + 2
y = a * b

函数参数:函数调用时,函数名和括号之间不加空格,括号和参数之间加空格。
例:
my_function(arg1, arg2)
逗号后面:逗号后面加一个空格。


4. 命名约定
变量和函数:采用小写字母和下划线分隔的命名方式(snake_case)。

类名:采用刘老师最爱的驼峰命名法(CamelCase),首字母大写。

常量:常量名全部采用大写字母,并使用下划线分隔。
例:
MAX_LENGTH = 100


5. 注释
行内注释:注释应与代码分开,至少有两个空格,并且注释的首字母大写。
例:
x = 5  # This is an inline annotation

块注释:块注释应使用完整的句子,且每行开头使用 #,每行后不应有多余的空格。注释文本应左对齐。
# 这是一个块注释
# 它描述了函数的功能或某个复杂的逻辑

文档字符串(docstrings):所有模块、函数、类和方法都应有文档字符串,文档字符串应使用三重引号(""")。


6. 错误处理
异常处理:使用 try/except 语句时,except 后应指定特定的异常类型,避免使用通用的 except。
例:
try:
    pass  # 可能引发异常的代码
except ValueError:
    pass  # 处理 ValueError 异常


7. 代码结构
函数和方法:函数应尽量保持简短,每个函数只做一件事。

类:每个类的功能应该单一,尽量避免多重继承和复杂的类层次结构。


8. 避免过度优化
避免过度的性能优化,除非性能问题严重影响了正常运行,亦或是你在参加算法大赛,写可读性高、易于维护的代码通常比写性能优越但难以理解的代码更重要。

PEP 8 是 Python 社区的代码风格基础,遵循它能让你的代码更具可读性。如果你使用自动化工具(如 flake8, black 等)或现代编译器(如PyCharm,它的配置教程详见python资源帖),它们可以帮助你检查代码是否符合 PEP 8 标准。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RealDevClub ( 沪ICP备2024093864号-1 )

GMT+8, 5-10-2025 20:31 , Processed in 0.058698 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表