types 模块工作簿已添加到标准库学习路径

发布: (2026年1月4日 GMT+8 12:18)
3 min read
原文: Dev.to

Source: Dev.to

概览

我已经完成并上传了 types 模块练习册 到我的 standardlib-datastruct 仓库。该练习册深入探讨 Python 的运行时对象类型和 CPython 内部实现,提供了 18 道练习,覆盖了 types 模块中最重要的类型。目标是实现全面覆盖,而不是特定顺序,帮助你掌握支撑 Python 底层的各种类型。

涵盖的类型

函数和方法类型

  • FunctionTypeLambdaType – 普通函数和 lambda 表达式
  • MethodType – 绑定方法
  • BuiltinFunctionTypeBuiltinMethodType – 内建可调用对象

异步和生成器类型

  • GeneratorType – 普通生成器
  • AsyncGeneratorType – 异步生成器
  • CoroutineType – 协程对象

代码和执行类型

  • CodeType – 编译后的字节码对象
  • FrameType – 执行帧
  • TracebackType – 异常回溯

描述符类型

  • MemberDescriptorType – 类属性描述符
  • WrapperDescriptorType – 低层内建描述符
  • GetSetDescriptorType – 用 C 实现的属性

实用类型

  • MappingProxyType – 只读字典视图
  • ModuleType – 模块对象
  • EllipsisType... 单例
  • NotImplementedTypeNotImplemented 单例

练习册详情

  • 18 道练习,覆盖上述所有类型。
  • 每道练习都包含清晰的问题描述以及完整的解答和可运行的代码示例。
  • 练习册 并非面向初学者,设计上假设你已经了解 Python 的对象模型以及类型的工作方式。

学习方法

  • 侧重实战、通过练习驱动的学习,而非穷尽的参考资料。
  • 使用 Python 3.11
  • 演示如何在不阅读 C 代码的情况下理解 CPython 的内部描述符类型:
    • MemberDescriptorType – 在 CPython 中实现的属性(例如访问属性)
    • GetSetDescriptorType – 在 CPython 中实现的属性(类似 property,但用 C 实现)
    • WrapperDescriptorType – 在 CPython 中实现的方法

仓库

  • 仓库:
  • 本次发布包含的文件:
    • types_exercises_workbook.md – Markdown 格式
    • types_exercises_workbook.pdf – PDF 格式(使用 Pandoc + MiKTeX 生成)
    • types_workbook.py – 源代码生成脚本

相关工作

  • 之前的新增内容:functools 练习册、itertools 练习册。
  • 这是一个持续进行的项目;更多标准库模块将在完成后陆续加入。

欢迎下载、完成练习,并根据自己的学习方式进行适配。

Back to Blog

相关文章

阅读更多 »

第10题:去重

问题描述:我们需要一个函数,从列表中删除重复项,同时保留元素的原始顺序。例如 remove_duplicates(1, 2, 2, 3)。