1. 基本缩进规则
- 使用 4个空格 作为一级缩进(推荐)
- 避免混合使用空格和制表符(Tab)
- 续行缩进应该与包裹元素对齐或使用悬挂缩进
def function_name(
parameter_one, parameter_two,
parameter_three):
print("Hello World")
result = some_function(
'first_arg', 'second_arg',
'third_arg')
2. 最大行长度
- 每行不超过 79个字符(PEP 8推荐)
- 对于文档字符串或注释不超过 72个字符
3. 空行使用
- 顶层函数和类定义之间用 两个空行
- 类内方法定义之间用 一个空行
- 函数内逻辑段落之间可适当使用空行分隔
class MyClass:
def method_one(self):
pass
def method_two(self):
pass
def top_level_function():
pass
4. 导入(import)格式
- 每个导入通常独占一行
- 导入顺序:标准库 → 第三方库 → 本地应用/库
- 每组导入之间用空行分隔
import os
import sys
from datetime import datetime, timedelta
import numpy as np
import pandas as pd
from my_module import MyClass
5. 表达式和语句中的空格
- 二元运算符两侧各加一个空格
- 函数参数列表中,逗号后加空格
- 不要紧贴括号、方括号或大括号内部加空格
x = a + b
result = func(a, b)
lst = [1, 2, 3]
x=a+b
result = func(a,b)
lst = [ 1, 2, 3 ]
6. 注释格式
- 行内注释:至少与语句间隔2个空格,#号后加1个空格
- 块注释:每行以#号开头,后跟1个空格
- 文档字符串:使用三重引号
x = x + 1
def my_function():
"""这是一个文档字符串
这里可以详细描述函数的功能、参数和返回值。
"""
pass
7. 命名约定
- 变量和函数名:
lowercase_with_underscores
(小写+下划线)
- 类名:
CapitalizedWords
(驼峰式)
- 常量名:
ALL_CAPS
(全大写)
- 私有变量/方法:
_single_leading_underscore
(单下划线开头)
8. 字符串引号
- 普通字符串使用单引号
'...'
- 字符串中包含单引号时使用双引号
"..."
- 多行字符串使用三重双引号
"""..."""
name = 'John'
message = "Don't worry"
docstring = """这是一个
多行字符串"""
9. 书写注意事项
- 避免使用分号
;
将多条语句放在一行
- 比较操作时,
None
应该用is
或is not
,而不是==
- 使用
if x is not None
而不是if not x is None
10. 函数定义规范
- 函数参数排列顺序:位置参数 → 默认参数 → 可变参数 → 关键字参数
- 函数定义与调用时保持参数对齐
def request(
method,
url,
params=None,
data=None,
headers=None,
**kwargs):
"""发送HTTP请求"""
pass
response = request(
'GET',
'https://example.com',
params={
'key': 'value'},
headers={
'Content-Type': 'application/json'}
)
11. 类定义规范
- 类方法第一个参数必须是
self
- 类方法之间用空行分隔
- 继承类列表中的基类应该按从最抽象到最具体的顺序排列
class Animal:
pass
class Dog(Animal):
def __init__