Python 的预处理器

主要观点:Python 有预处理器,可通过多种方式自定义和扩展,如定义源文件编码、路径配置文件、自定义编解码器等,还能解释其他语言如 C/C++、验证数据格式 TOML 等,magic_codec可用于自定义预处理,一些项目如 pythonql 等利用了这些技术。
关键信息:

  • 可通过在源文件前两行放置魔法注释定义源文件编码,如# coding=utf8等。
  • 可通过在site-packages文件夹中放置.pth文件添加路径到模块搜索路径,还可在其中执行任意代码来加载自定义编解码器。
  • 要定义自定义编解码器需提供解码函数decode和增量解码器类,注意异常处理等。
  • 扩展 Python 可使用tokenizeast模块,如处理一元增量和减量运算符、使用大括号替代缩进等。
  • 可利用#注释在某些语言中设置编码或进行其他操作,如cppyy可用于解释 C/C++代码。
  • jsonschema可用于验证 TOML 数据格式。
    重要细节:
  • 魔法注释的正则表达式^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)
  • 自定义编解码器中decode函数的具体实现及增量解码器类的细节。
  • 扩展 Python 时在不同模块如tokenizeast中的操作方法。
  • 解释 C/C++代码时使用cppyy及相关代码示例。
  • preprocess函数在验证 TOML 数据中的具体实现及示例输入输出。
阅读 13
0 条评论