python-coding

Python 代码编写规范和最佳实践。适用于代码生成、代码审查、代码重构场景。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "python-coding" with this command: npx skills add jasong98/code-skills/jasong98-code-skills-python-coding

核心原则

  • 正确性优先: 确保代码正确运行后再优化
  • 显式优于炫技: 可读性优先于技巧
  • 保持一致性: 与现有项目风格冲突时,优先匹配项目风格

快速参考

命名约定

类型风格示例
模块/函数/变量snake_casecalculate_total
类名CapWordsUserAccount
常量UPPER_SNAKE_CASEMAX_RETRY_COUNT
私有属性_leading_underscore_internal_id
布尔变量is_/has_/can_ 前缀is_active, has_permission

类型注解

# 使用现代语法 (Python 3.10+)
def process(items: list[str]) -> dict[str, int]: ...
def get_user(id: int) -> User | None: ...

# 使用 Protocol 进行结构化类型
from typing import Protocol

class Drawable(Protocol):
    def draw(self) -> None: ...

详细指南: style-guide.md#类型注解

函数设计

  • 单一职责: 每个函数做一件事
  • 长度限制: ≤60 行(理想 ≤20 行)
  • 参数数量: ≤5 个(超过则用 dataclass)
  • 参数顺序: 必填 → 可选 → *args → **kwargs
# 参数过多时使用 dataclass
@dataclass
class EmailConfig:
    to: str
    subject: str
    body: str
    cc: list[str] = field(default_factory=list)

def send_email(config: EmailConfig) -> None: ...

Import 规则

# 分组顺序,每组内按字母排序
import os
import sys
from pathlib import Path

import requests
from dotenv import load_dotenv

from myapp.models import User
from myapp.utils import logger
  • 禁止 from module import *
  • import 阶段不得执行 I/O 或重计算

错误处理

# 使用具体异常类型
try:
    result = data["key"]
except KeyError:
    result = default_value
except requests.Timeout:
    logger.warning("Request timed out")
    raise

# 禁止裸 except
# Bad: except Exception: pass

文档注释规则

使用中文文档字符串(Google Style)

def load_config(path: Path) -> dict[str, Any]:
    """加载并校验配置文件.

    该函数读取配置文件并返回解析结果, 不修改全局状态.

    Args:
        path: 配置文件路径.

    Returns:
        解析后的配置字典.

    Raises:
        ValueError: 当配置不合法时抛出.
    """

格式规则:

  • 使用中文描述
  • 使用英文关键字(Args/Returns/Raises)
  • 使用英文半角标点(. , :
  • 描述语义/约束/副作用,不写实现细节

注释规则

  • 使用中文文字书写
  • 仅使用英文半角标点(. , ;
  • 中英文之间加空格:使用 LRU 缓存
  • 解释为什么,不解释代码做了什么
# 使用贪心策略, 因为回溯会导致指数级复杂度
result = greedy_search(data)

代码格式

  • 使用 4 空格缩进(禁用 tab)
  • 行宽 ≤120 字符
  • 使用 () 换行,避免 \
  • 顶层定义间 2 行空行,类内方法间 1 行空行

自检清单

  • Import 分组正确(标准库/第三方/本地)
  • 所有公共 API 有类型注解
  • 所有公共 API 有 docstring
  • 无类型重复(签名已有类型,docstring 不再重复)
  • 注释标点为英文半角
  • 无裸 except Exception: pass
  • 函数 ≤60 行,参数 ≤5 个
  • 无魔法数字(使用命名常量)
  • 使用 context manager 管理资源
  • 风格符合项目约定

详细资源

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

python-project

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

Cortex Engine

Persistent cognitive memory for AI agents — query, record, review, and consolidate knowledge across sessions with spreading activation, FSRS scheduling, and...

Registry SourceRecently Updated
Coding

AI Image & Video Toolkit — Free Upscale, Face Enhance, BG Remove & Generation

Free local AI image and video processing toolkit with cloud AI generation. Local tools: upscale (Real-ESRGAN), face enhance (GFPGAN/CodeFormer), background r...

Registry SourceRecently Updated