👉 项目官网:https://www.python-office.com/ 👈

👉 本开源项目的交流群 👈

github star gitee star atomgit star

AI编程 AI交流群

大家好,这里是程序员晚枫,正在all in AI编程实战,全网同名。
【视频脚本】Python Type Hint 实战精讲
目标时长:15~18 min,B 站 1080p60,附完整代码 & 课件下载
观众画像:已用 Python 写过项目,但对类型提示“只写过 List[int]”的工程师


  1. 片头(15 s)
    • 标题:「15 分钟吃透 Python Type Hint —— 从入门到工程化」
    • 闪现 4 个痛点:
  • IDE 没补全
  • 运行时才炸类型错误
  • 祖传代码看不懂
  • Code Review 全靠吼

  1. 开场 Hook(45 s)
    “同样是 Python,为什么有人能重构 10 万行不翻车?答案:给解释器一双‘静态眼睛’。”
    现场演示:
    左侧 VS Code 无类型提示 → 补全失效、运行时报错
    右侧加上类型提示 → 补全、重构、文档一条龙

  1. 快速热身(2 min)
    2.1 最小可运行片段
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def add(a: int, b: int) -> int:
return a + b
```
2.2 现场改 bug:把 b 改成 str,mypy 立即红线警告
2.3 解释 PEP 484 的历史:20142024 十年进化路线图

--------------------------------------------------------------------
3. 核心语法速通(3 min
3.1 基本标量:int, float, bool, str, bytes
3.2 容器泛型:List[int] vs list[int](3.9+)
3.3 Union 与新版 | 语法
3.4 Optional[X] 就是 Union[X, None] 的语法糖
3.5 现场互动弹幕:「下面哪个写法 3.10 之后不推荐?」
A) Optional[int] B) Union[int, None] C) int | None

--------------------------------------------------------------------
4. 中阶武器(4 min
4.1 TypeVar —— 泛型函数
```python
from typing import TypeVar
T = TypeVar('T')

def first(items: list[T]) -> T:
return items[0]

4.2 Generic —— 泛型类

1
2
class Stack(Generic[T]):
...

4.3 ParamSpec & Concatenate —— 高阶装饰器
现场演示:把 @timer 装饰器完整加类型
4.4 TypedDict vs dataclass —— JSON 友好方案


  1. 实战演练(4 min)
    5.1 需求:写一个 CLI 下载器,支持限速、重试、断点续传
    5.2 现场 60 秒搭骨架:
1
2
3
4
5
6
from __future__ import annotations
import httpx
from typing import Protocol

class Progress(Protocol):
def update(self, n: int) -> None: ...

5.3 类型驱动设计:

  • 协议(Protocol)替代继承
  • httpx 官方类型自动补全
  • mypy --strict 零警告
    5.4 运行测试:故意传错参数,mypy 秒级捕获

  1. 工程化落地(2 min)
    6.1 pre-commit 钩子:mypy + black + isort
    6.2 pyproject.toml 最小配置
1
2
3
[tool.mypy]
strict = true
python_version = "3.11"

6.3 CI:GitHub Actions matrix 3.9/3.10/3.11
6.4 渐进式迁移:

  • --ignore-missing-imports 过渡
  • stub 文件 .pyi 的使用

  1. 彩蛋 & 展望(30 s)
    • 3.12 新玩具:TypeAliasType、override 装饰器
    • 3.13 预告:TypedDict 只读字段、TypeForm
    • 点赞过 1k 出下一期「用 mypy 插件给 Django QuerySet 加类型」

  1. 片尾(10 s)
    • 下载链接:GitHub + 课件 PDF
    • 弹幕口令:「类型安全yyds」

录制小贴士
• 双机位:屏幕录制 + 人像小窗
• 字幕:自动生成后手动校正术语
• 代码字体:JetBrains Mono 22 px
• 高亮色:#00B0FF(与 VS Code Dracula 主题一致)
• 音频:Shure MV7 + 降噪


附:完整 Demo 仓库结构

1
2
3
4
5
6
7
type-hint-demo/
├── pyproject.toml
├── .pre-commit-config.yaml
├── src/
│ └── downloader.py # 实战代码
└── tests/
└── test_downloader.py

大家在学习课程中有任何问题,欢迎+微信和我交流👉我的联系方式:微信、读者群、1对1、福利

扫一扫,领红包

美团红包

剪映「零插件」做出赛博感的 5 步套路
(15 min 视频,用剪映桌面版 4.6+ 即可完成,所有参数可直接抄)

────────────────
1 片头 3 秒「HUD 扫描」
• 资源:剪映「素材库 → 科技」搜索「HUD 扫描线」,挑一个 3 s 的透明通道素材。
• 叠加方式:放在最上层 → 混合模式「滤色」 → 不透明度 80 %。
• 调色:选中 HUD 层 → 调节 → 色温 -20 → 色调 +20 → 饱和度 +30,瞬间冷光科技蓝。

2 代码框「黑客窗口」
• 背景:新建「背景 → 纯色」#0D1117。
• 录屏素材拖进来 → 裁掉多余 → 缩放 92 % 居中。
• 边框:
①「特效 → 边框 → 霓虹边框」选一个,颜色改 #00B0FF,宽度 3 px。
②「动画 → 循环 → 闪烁」里挑「呼吸灯」,速度 2 s。
• 光标拖尾:
用「贴纸 → 搜索『光标』」→ 放在代码输入处 → 打关键帧(每 3 帧移动一次)→ 加「运动模糊」特效。

3 字幕条 & 关键术语弹出
• 字幕条:
文字 → 样式 → 字体选「思源黑体 Heavy」→ 大小 48 → 颜色 #FFFFFF。
背景 → 圆角矩形 → 填充 #161B22 → 描边 2 px #00B0FF。
动画 → 入场「滑入」0.3 s,出场「滑出」0.3 s。
• 术语高亮:
复制同一行字幕 → 改颜色 #00B0FF → 加「动画 → 放大缩小」0.2 s,放在原字幕上方轨道,实现瞬间闪蓝。

4 转场 & 音效
• 代码块切换:
「转场 → 科技 → 数字故障」时长 8 帧 → 勾选「应用到全部」。
• 音效:
资源库搜索「whoosh」「confirm」→ 放在转场处 → 音量 -15 dB → 淡入淡出各 5 帧。
• 全局背景乐:
资源库「电子」分类挑 120 BPM 曲子 → 音量 -25 dB → 开启「智能踩点」→ 转场自动对齐鼓点。

5 片尾二维码 Glitch
• 二维码 PNG 拖进来 → 位置右下角 → 缩放 25 %。
• 特效 → 扭曲 → Glitch(强度 50,速度 1.5 s)→ 循环 3 次。
• 文字「扫码领取源码」:字体 36,白字 + 2 px #00B0FF 外发光。

────────────────
一键复用模板
剪映 → 我的模板 → 新建 → 把上面 5 步存为「CyberType」模板
下次录完直接「一键成片」,替换录屏素材即可。

🎓 AI 编程实战课程

程序员晚枫专注AI编程培训,通过 《30讲 · AI编程训练营》,让小白也能用AI做出实际项目。帮你从零上手!