您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

可以在Python中创建自定义字符串文字前缀吗?

可以在Python中创建自定义字符串文字前缀吗?

这些前缀在解释器中进行了硬编码,您不能注册更多的前缀。

但是,您 可以 做的是通过使用 自定义源编解码器 预处理Python文件。这是一个相当简洁的技巧,要求您注册一个自定义编解码器,并了解和应用源代码转换

Python允许您在顶部加上特殊注释来指定源代码的编码:

# coding: utf-8

会告诉Python使用UTF-8编码的源代码,并在解析之前对文件进行相应的解码。Python在codecs模块注册表中为此查找编解码器。而且你可以注册自己的编解码器

pyxl项目使用这种伎俩来从Python文件解析出的HTML语法与实际的Python语法来替换它们构建HTML,尽在“解码”的一步。请参阅该项目中的codec,其中该register模块注册一个自定义codec搜索功能,该功能可以在Python实际解析和编译源代码之前转换源代码。将自定义.pth文件安装到您的site- packages目录中,以在Python启动时加载此注册步骤。另一个做同样的事情来解析Ruby样式的字符串格式的项目是interpy

然后,您所需要做的就是也构建这样的编解码器,该编解码器将解析Python源文件(对它进行标记,也许使用tokenizemodule标记),并用mystr(<string literal>)调用自定义前缀替换字符文字。要解析的任何文件都用标记# coding: yourcustomcodec

我将把这一部分留给读者练习。祝好运!

注意,此转换的结果然后被编译成字节码,并被缓存;您的转换只需在每个源代码修订版中运行 一次 ,使用您的编解码器的模块的所有其他导入将加载缓存的字节码。

python 2022/1/1 18:38:48 有256人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶