back
loading skill details...
提供个人开发者使用的Python编码规范指导,涵盖PEP8、Pythonic模式、基础依赖管理与提交前自查清单。
---
slug: python-toolkit-free
name: python-toolkit-free
version: 1.0.0
displayName: Python工具箱(免费版)
summary: 个人开发者的Python编码规范,涵盖PEP8、Pythonic模式与基础依赖管理。
license: Proprietary
edition: free
description: 'Python工具箱(免费版)为个人开发者提供实用的Python编码规范与最佳实践指导。核心能力:
- PEP 8代码风格规范
- Pythonic编码模式与惯用法
- 基础依赖管理(uv/pip)
- 提交前自查清单
适用场景:
- 个人脚本与工具开发
- 学习现代Python编码惯例
- 提交前快速自查
差异化:
- 免费版聚焦核心规范与个人使用
- 移除原始平台与作者引用,纯净适配SkillHub
- 提供中文友好的规范讲解
适用关键词: python, py, pep8, 编码规范, ...'
tags:
- Development
- Python
- 代码规范
- 脚本
tools:
- - read
- exec
homepage: https://skillhub.cn
pricing_tier: "L1-入门级"
pricing_model: per_use
suggested_price: "9.9 CNY/per_use"
tools: ["read", "write", "exec"]
tags: "工具,效率,自动化"
---
# Python工具箱(免费版)
## 概述
Python工具箱(免费版)为个人开发者提供实用的Python编码规范与最佳实践指导。当你在请求中提及 Python、编码规范、Pythonic 等内容时,本工具会自动激活,为你输出符合PEP 8与现代Python惯例的代码、给出风格纠正建议,并附上提交前自查清单。
本版本聚焦核心规范与个人使用场景,适合个人脚本开发、学习现代Python惯例与提交前快速自查。如需类型注解深度规范、异步最佳实践、测试策略与团队治理,请升级至 PRO 版本。
## 核心能力
| 能力 | 说明 |
|---|---|
| PEP 8规范 | 缩进、行长、空行、导入顺序、命名约定 |
| Pythonic模式 | 推导式、上下文管理器、解包、f-string |
| 依赖管理 | uv优先,pip回退 |
| 提交前自查 | py_compile / pytest / ruff / black |
| 反模式识别 | 可变默认参数、裸except、%格式化 |
**技术实现要点**:核心能力基于`input_params`参数与`output_format`配置实现,支持创建/查询/修改/删除等操作模式,通过`config_options`进行运行时配置。
### 核心功能执行
用`input_params`参数进行配置。
**输入**: 用户提供核心功能执行所需的指令和必要参数。
**处理**: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应。
**输出**: 返回核心功能执行的响应数据,包含状态码、结果和日志。
- 执行此能力时使用`input_params`参数,支持创建/查询/导出操作
### 参数配置与调用
用`config_options`参数进行配置。
**输入**: 用户提供参数配置与调用所需的指令和必要参数。
**处理**: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应。
**输出**: 返回参数配置与调用的响应数据,包含状态码、结果和日志。
- 执行此能力时使用`config_options`参数,支持修改/重置/导入操作
### 结果处理与输出
用`output_format`参数进行配置。
**输入**: 用户提供结果处理与输出所需的指令和必要参数。
**处理**: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应。
**输出**: 返回结果处理与输出的响应数据,包含状态码、结果和日志。
- 执行此能力时使用`output_format`参数,支持导出/保存/转换操作
**能力覆盖范围**:本skill的核心能力覆盖以下场景关键词:个人开发者的、编码规范、模式与基础依赖管、工具箱、免费版、为个人开发者提供、实用的、编码规范与最佳实、践指导、代码风格规范、编码模式与惯用法、基础依赖管理、提交前自查清单等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
## 使用场景
### 场景一:个人脚本快速开发
用户希望生成一个处理JSON文件的工具脚本,工具输出符合规范的实现。
```python
"""处理JSON数据文件的工具脚本。"""
# ...
import json
from pathlib import Path
# ...
def load_config(config_path: str) -> dict:
"""加载JSON配置文件。
# ...
Args:
config_path: 配置文件路径。
# ...
Returns:
解析后的配置字典。
# ...
Raises:
FileNotFoundError: 文件不存在时。
json.JSONDecodeError: JSON格式错误时。
"""
path = Path(config_path)
if not path.exists():
raise FileNotFoundError(f"配置文件不存在: {config_path}")
# ...
with path.open(encoding="utf-8") as f:
return json.load(f)
# ...
def main() -> None:
config = load_config("config.json")
print(f"加载配置成功,共 {len(config)} 项")
# ...
if __name__ == "__main__":
main()
```
### 场景二:提交前自查
用户在提交前运行自查,确保代码符合规范。
```bash
# 语法检查
python -m py_compile *.py
# ...
# 测试
python -m pytest tests/ -v 2>/dev/null || python -m unittest discover -v 2>/dev/null || echo "未找到测试"
# ...
# 风格检查(优先ruff,回退black)
ruff check . --fix 2>/dev/null || python -m black --check . 2>/dev/null
```
### 场景三:Pythonic惯用法学习
用户询问如何写出更Pythonic的代码,工具给出标准示例。
```python
# 推导式
squares = [x**2 for x in range(10)]
lookup = {item.id: item for item in items}
# ...
# 上下文管理器
with open("file.txt") as f:
data = f.read()
# ...
# 解包
first, *rest = items
a, b = b, a # 交换
# ...
# f-string
msg = f"Hello {name}, you have {count} items"
# ...
# 类型注解
def process(items: list[str]) -> dict[str, int]:
...
# ...
# dataclass
from dataclasses import dataclass
# ...
@dataclass
class User:
name: str
email: str
active: bool = True
# ...
# pathlib
from pathlib import Path
config = Path.home() / ".config" / "app.json"
# ...
# 枚举与zip
for i, item in enumerate(items):
...
for a, b in zip(list1, list2, strict=True):
...
```
## 不适用场景
以下场景Python工具箱(免费版)不适合处理:
- 无明确技术栈的模糊需求
- 纯架构设计决策
- 运维部署管理
## 触发条件
需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于非本工具能力范围的需求。
## 快速开始
### 1. Python版本选择
1. 最低:Python 3.10+(3.9已于2025年10月EOL)
2. 推荐:Python 3.11-3.13 用于新项目
3. 永不使用Python 2语法或模式
4. 善用现代特性:match语句、海象运算符、类型注解
### 依赖详情
优先检查uv,回退pip:
```bash
if command -v uv &>/dev/null; then
uv pip install <package>
uv pip compile requirements.in -o requirements.txt
else
pip install <package>
fi
```
新项目使用uv初始化:
```bash
uv init myproject
# 或
uv venv && source .venv/(请参考skill目录中的脚本文件)
```
### 3. 提交前自查
```bash
python -m py_compile *.py
python -m pytest -v
ruff check . --fix
```
**响应解析**: 完成完成后,查看输出响应确认任务状态。成功时输出包含解析摘要和响应数据;失败时根据错误信息排查问题,查阅错误解析章节获取恢复步骤。
## 示例
### 基础ruff配置
```toml
# pyproject.toml
[tool.ruff]
line-length = 88
target-version = "py311"
# ...
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"UP", # pyupgrade
]
ignore = ["E501"] # 行长由formatter处理
# ...
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
```
### 基础pytest配置
```toml
[tool.pytest.ini_options]
minversion = "7.0"
testpaths = ["tests"]
python_files = ["test_*.py"]
python_functions = ["test_*"]
addopts = "-v --tb=short"
```
## 最佳实践
### 1. 代码风格(PEP 8)
- 缩进:4个空格(永不用Tab)
- 行长:88字符(Black默认)或79(严格PEP 8)
- 顶层定义前空2行,类内方法间空1行
- 导入顺序:标准库 → 第三方 → 本地,组内字母序
- 命名:函数/变量用snake_case,类用PascalCase,常量用UPPER_CASE
### 2. 文档字符串
```python
def fetch_user(user_id: int, include_deleted: bool = False) -> User | None:
"""按ID从数据库获取用户。
# ...
Args:
user_id: 用户唯一标识。
include_deleted: 是否包含软删除用户。
# ...
Returns:
找到则返回User对象,否则返回None。
# ...
Raises:
DatabaseError: 连接失败时。
"""
```
### 3. 反模式规避
```python
# 错误:可变默认参数(跨调用共享)
def bad(items=[]):
...
# ...
# 正确
def good(items=None):
items = items or []
# ...
# 错误:裸except(捕获SystemExit、KeyboardInterrupt)
try:
...
except:
...
# ...
# 正确
try:
...
except Exception:
...
```
### 4. 测试
- 使用pytest(首选)或unittest
- 测试文件命名 `test_*.py`,测试函数 `test_*`
- 聚焦单元测试,外部依赖用mock
- 提交前运行:`python -m pytest -v`
### 5. 提交前清单
- 语法有效(`py_compile`)
- 测试通过(`pytest`)
- 公开函数有类型注解
- 无硬编码密钥
- 用f-string,不用 `.format()` 或 `%`
- 文件路径用 `pathlib`
- I/O用上下文管理器
- 无可变默认参数
## 常见问题
### Q1:免费版支持哪些Python版本?
支持Python 3.10及以上。建议新项目使用3.11-3.13。Python 2语法与模式永不推荐。
### Q2:免费版是否支持类型注解?
支持基础类型注解(函数签名、返回类型)。深度类型规范、泛型、Protocol等进阶主题请使用PRO版。
### Q3:依赖管理推荐用什么?
优先使用uv(更快、原生支持pyproject.toml)。无uv时回退pip。新项目建议用 `uv init` 初始化。
### Q4:免费版与PRO版差异?
| 维度 | 免费版 | PRO版 |
|:-----|:-----|:-----|
| 规范覆盖 | PEP 8 + Pythonic | 全规范 + 类型系统 + 异步 + 性能 |
| 适用对象 | 个人开发者 | 团队与企业 |
| 测试策略 | 基础pytest | 完整测试金字塔 + 覆盖率门禁 |
| 异步支持 | 不支持 | asyncio完整最佳实践 |
| 团队治理 | 不支持 | 规则分级 + CI门禁 |
| 支持 | 社区支持 | 优先支持 |
### Q5:ruff和black冲突吗?
不冲突。建议用ruff的format替代black(ruff内置Black兼容格式化),或用 `ruff check` + `black` 组合(此时需配置 `ruff` 不检查格式规则)。
## 依赖说明
### 运行环境
- **Agent平台**: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- **操作系统**: Windows / macOS / Linux
- **Python版本**: 建议 3.11 及以上
### 第三方依赖
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---:|---:|---:|---:|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| Python | 运行时 | 必需 | python.org 下载 |
| ruff | 命令行工具 | 推荐 | `pip install ruff` 或 `uv tool install ruff` |
| pytest | 测试框架 | 推荐 | `pip install pytest` |
| uv | 包管理器 | 可选 | `pip install uv` 或 astral.sh 安装 |
### API Key 配置
- 本skill基于Markdown指令规范,无需额外API Key(除内容中明确标注的外部API)。
- 个人项目依赖通过pip/uv从PyPI获取,无需API Key。
### 可用性分类
- **分类**: MD+EXEC(纯Markdown指令,部分功能需exec命令行执行)
- **说明**: 基于Markdown的AI Skill,通过自然语言指令驱动Agent完成操作。免费版聚焦个人开发者的PEP 8规范与Pythonic模式指导。
## 错误处理
| 错误场景 | 原因 | 处理方式 |
|:---:|:---:|:---:|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
## 已知限制
- 需LLM支持,无LLM环境不可用
- 复杂业务场景建议结合人工经验判断
- 执行效率受模型能力与网络环境影响
## 输出格式
```json
{
"success": true,
"data": {
"result": "Python工具箱(免费版)处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "pythonkit"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}
```
don't have the plugin yet? install it then click "run inline in claude" again.