MENTAL MODEL / 心智模型
先建立正确的程序直觉
模块负责边界,函数负责可测试行为,环境负责依赖隔离;动态类型不等于不需要明确数据契约。
Mathematics · Computational Science · Engineering · Personal Knowledge Systems
切换会载入对应网站形态,并更换导航、首页结构、内容密度、页面网格与阅读路径;当前路径及其他查询参数会保留。
预览卡展示真实构图语言;切换后会同步改变布局密度、卡片几何、按钮、边框、HUD、背景纹样与动效节奏。
0% 会停止装饰动画并隐藏粒子;系统开启“减少动态效果”时始终优先静态显示。
0% 会移除上层面板遮罩,100% 为完全不透明;文字和控件始终保持清晰。
系统已启用减少透明效果:背景模糊会关闭,但仍采用你设置的面板不透明度。
LANG-03 · PROGRAMMING WORKBENCH
用清晰模块、类型提示与自动化测试快速把想法变成可靠工具。
围绕虚拟环境、pyproject、模块入口、pytest 和安全边界组织 Python 项目,让探索代码可以逐步成长为可维护工程。
MENTAL MODEL / 心智模型
模块负责边界,函数负责可测试行为,环境负责依赖隔离;动态类型不等于不需要明确数据契约。
CODE REPOSITORY / 代码仓库锚点
python-project/
├─ pyproject.toml
├─ README.md
├─ src/app/__init__.py
├─ src/app/__main__.py
├─ src/app/core.py
└─ tests/test_core.pyQUICK START / 第一条命令
python -m venv .venv && python -m pip install -e . && python -m appLEARNING ROUTE / 学习路径
每个节点都包含可复制示例、判断原则与常见陷阱。
用推导式、生成器、上下文管理器和明确异常写出可读数据流。
totals = {
row["category"]: row["amount"]
for row in rows
if row["active"]
}推导式适合短而清晰的映射/过滤;复杂分支改用具名循环。
from pathlib import Path
text = Path("data/input.txt").read_text(encoding="utf-8")pathlib 统一路径操作;文本边界显式指定编码。
try:
payload = json.loads(raw)
except json.JSONDecodeError as exc:
raise ValueError(f"invalid configuration: {exc.msg}") from exc只捕获可以处理的具体异常,并用异常链保留根因。
业务代码、命令入口和测试分离,避免工作目录偶然影响导入。
# src/app/__main__.py
from .cli import main
if __name__ == "__main__":
raise SystemExit(main())使用 python -m app 运行,保持导入语义与安装后的包一致。
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "memory-tools"
version = "0.1.0"
requires-python = ">=3.12"构建后端只是示例;团队应统一工具并提交锁文件(若所选工具支持)。
始终通过当前解释器调用模块,避免 pip 与 python 指向不同环境。
python -m venv .venv
# PowerShell
.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip每个项目独立环境;在 CI 中从清单重建而不是复制 .venv。
python -m app --help相比直接运行深层脚本,-m 能保持包内相对导入和模块边界。
python -m pip install build
python -m build生成 wheel 与 source distribution;发布前在干净环境安装验证。
区分运行依赖与开发依赖,锁定直接和间接版本,并定期审计。
python -m pip install -e .可编辑安装适合开发;依赖应在 pyproject 中声明而不是只存在于某台机器。
python -m pip check
python -m pip list --outdatedpip check 验证已安装依赖兼容性;升级前先看变更并运行完整测试。
测试公共行为、记录上下文,并让失败能在最小输入上稳定复现。
import pytest
@pytest.mark.parametrize(("raw", "expected"), [("2", 2), (" 5 ", 5)])
def test_parse_count(raw: str, expected: int) -> None:
assert parse_count(raw) == expected正常值、边界、非法输入分别建例;断言面向行为而非内部实现。
python -m pytest -q
python -m pytest tests/test_core.py::test_parse_count -vv
python -m pytest --pdb--pdb 在失败点进入调试器;CI 通常不启用交互模式。
logger.info("import completed", extra={"rows": count, "source": source})日志记录事件和必要上下文,不记录密码、令牌或完整敏感数据。
完整阅读 traceback,从最后一层异常回溯输入与调用路径。
确认当前 python 路径和虚拟环境 → python -m pip show 包名 → 使用 python -m app → 检查包布局和安装状态。不要通过修改 sys.path 或复制文件长期掩盖包装问题。
def append_item(item: str, target: list[str] | None = None) -> list[str]:
result = [] if target is None else target
result.append(item)
return result默认参数在函数定义时只创建一次;用 None 表示每次新建。
确认 async 函数在事件循环中被 await;程序入口用 asyncio.run(main()),不要随意嵌套事件循环。同步和异步边界应集中在入口层。
把外部文本当作数据,不拼接成代码、Shell 命令或 SQL。
subprocess.run(
["git", "status", "--short"],
check=True,
text=True,
capture_output=True,
)参数使用列表;不要把不可信输入拼进 shell=True 字符串。
cursor.execute(
"SELECT id, title FROM tasks WHERE owner_id = %s",
(owner_id,),
)占位符风格取决于数据库驱动;表名等标识符需要驱动提供的安全组合方式。
密钥放环境/密钥服务;不加载不可信 pickle;上传文件校验大小与类型;依赖定期升级和审计;日志脱敏。不要提交 .env、虚拟环境、访问令牌或生产数据样本。
尝试更短的关键词,或者清空分类后重新搜索。
PRIVATE CODE VAULT / 私人代码仓库
把 Python 的练习、工程片段、算法伪代码、验证说明与历史版本保存在登录后的私人空间。
游客只看到这个说明,不会收到、缓存或渲染任何私人源码。
REFERENCE SOURCES / 官方与高质量资料
先在本站找回路径,再进入原始文档确认版本、平台和完整前置条件。
DELIVERY LOOP / 练习闭环