苦练Python第20天:Python官方钦定的代码风格指南
作者:Rahul Gupta
译者:倔强青铜三
前言
大家好,我是倔强青铜三 。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!
100 天 Python 挑战来到 第 20 天 !今天带你一口气吃透官方代码风格指南 PEP 8,让你的代码瞬间专业、可读、优雅。
📦 今日要点
- 什么是 Pythonic 代码
- PEP 8 速览:命名、缩进、行宽、空格、导入、文档
- 一键格式化神器:Black、flake8、isort
- 实战 Before vs After 对比
🧠 Pythonic 代码是什么?
- 易读
- 简洁却清晰
- 风格一致
- 优雅自然
📜 PEP 8 速查表
PEP 8 就是 Python 代码的"语法说明书"。
1️⃣ 4 个空格缩进
python
# ✅ 推荐
def greet():
print("Hello")
# ❌ 不推荐 (Tab键缩进 or 2个空格缩进)
2️⃣ 行宽 ≤ 79
python
print("Long strings can be broken with"
" implicit line continuation.")
3️⃣ 函数间留 2 空行
python
def foo():
pass
def bar():
pass
4️⃣ 运算符空格
python
x = 5 + 2 # ✅
x=5+2 # ❌
5️⃣ 命名规范
类型 | 风格 | 示例 |
---|---|---|
变量 | snake_case | user_name |
函数 | snake_case | get_data() |
类 | PascalCase | UserProfile |
常量 | ALL_CAPS | MAX_RETRY = 3 |
6️⃣ 一行只导入一个模块
python
import os
import sys # ✅
# import os, sys # ❌
导入顺序:
- 标准库
- 第三方库
- 本地模块
7️⃣ 为函数写 docstring
python
def add(a, b):
"""Return the sum of a and b."""
return a + b
8️⃣ 未使用变量用 _
python
for _ in range(5):
print("Hi")
9️⃣ None
用 is
判断
python
if user is None: # ✅
...
🧰 一键格式化神器
bash
pip install black flake8 isort
- Black:自动格式化
- flake8:代码检查
- isort:导入排序
格式化文件:
bash
black your_script.py
✨ Before vs After
❌ 不 Pythonic
python
def myfunc(x):print(x+ 5)
✅ Pythonic
python
def my_func(x):
print(x + 5)
🧼 为什么重要
- 可读性 ↑
- 协作效率 ↑
- Bug 早发现
- 专业形象 ↑
- 开源/团队必会
🧠 一日精华
- Pythonic = 优雅 + 规范
- PEP 8 十条军规速背
- Black + flake8 一键开挂
- 立即格式化,写真正的专业代码
最后感谢阅读!欢迎关注我,微信公众号 :
倔强青铜三
。欢迎点赞
、收藏
、关注
,一键三连!!!