38.3. aepack — Python 变量和 AppleEvent 数据容器之间的转换 — Python 文档
38.3. 包装 — Python 变量和 AppleEvent 数据容器之间的转换
aepack 模块定义了将 Python 变量转换(打包)为 AppleEvent 描述符并返回(解包)的函数。 在 Python 中,AppleEvent 描述符由内置类型 AEDesc
的 Python 对象处理,在模块 Carbon.AE 中定义。
笔记
此模块已在 Python 3.x 中删除。
aepack 模块定义了以下函数:
- aepack.pack(x[, forcetype])
返回一个
AEDesc
对象,其中包含 Python 值 x 的转换。 如果提供 forcetype,则它指定结果的描述符类型。 否则,将使用 Python 类型到 Apple 事件描述符类型的默认映射,如下所示:蟒蛇型
描述符类型
FSSpec
类型FSS
FSRef
类型FSRef
Alias
类型别名
整数
typeLong(32 位整数)
漂浮
typeFloat(64 位浮点数)
细绳
类型文本
统一码
类型Unicode文本
列表
类型AEList
字典
类型AE记录
实例
见下文
如果 x 是 Python 实例,则此函数尝试调用
__aepack__()
方法。 这个方法应该返回一个AEDesc
对象。如果上面没有定义转换 x,则此函数返回编码为文本描述符的值(repr() 函数)的 Python 字符串表示形式。
- aepack.unpack(x[, formodulename])
x 必须是
AEDesc
类型的对象。 此函数返回 Apple 事件描述符 x 中数据的 Python 对象表示。 简单的 AppleEvent 数据类型(整数、文本、浮点数)作为其明显的 Python 对应项返回。 Apple 事件列表作为 Python 列表返回,并且列表元素被递归解包。 对象引用(例如line 3 of document 1
) 作为 aetypes.ObjectSpecifier 的实例返回,除非指定了formodulename
。 描述符类型为 FSS 的 AppleEvent 描述符作为FSSpec
对象返回。 AppleEvent 记录描述符作为 Python 字典返回,其中包含 4 个字符的字符串键和递归解包的元素。可选的
formodulename
参数由 gensuitemodule 生成的存根包使用,并确保在正确的模块中查找对象说明符的 OSA 类。 这确保如果 Finder 返回一个窗口的对象说明符,您将获得Finder.Window
的实例,而不是通用的aetypes.Window
。 前者知道一个窗口在 Finder 中的所有属性和元素,而后者不知道这些。