由浅入深谈Python书写规范

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应该用isis 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__
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老胖闲聊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值