30 分钟
Python 高级

项目:插件化命令行工具

就练这三个:装饰器、生成器、上下文管理器。

  • 用装饰器实现命令注册
  • 用生成器处理数据流
  • 构建可扩展的CLI工具

项目设计

就做一个插件化的文本处理工具。

用装饰器注册命令

用生成器管道处理文本

用上下文管理器管理资源

完整实现

示例代码(可运行)
预测输出
d = {}
def reg(name):
    def w(f): d[name]=f; return f
    return w
@reg("hi")
def f(): return "hello"
print(d["hi"]())
填空题填写空白处的代码
def pipe(text): for line in text.split("\n"): line.strip()
选择题

命令注册模式的核心是?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

with 语句等价于 try/finally:无论正常结束还是中途抛异常,退出时都会执行清理(关文件、释放锁、断开连接)。实现方式有两种:类里写 __enter__/__exit__,或用 contextlib.contextmanager 把生成器变成上下文管理器。凡是「打开了必须关闭/获取了必须释放」的资源,都应该用 with 托管。

挑战任务

CLI工具

简单+50 XP

实现支持upper/lower/count/reverse命令的文本工具。

CLI工具
2 个测试用例

课后作业

更多插件

中等+20 XP

添加find/replace/统计词频命令。

更多插件
1 个测试用例