38.3. aepack — Python 变量和 AppleEvent 数据容器之间的转换 — Python 文档

来自菜鸟教程
Python/docs/2.7/library/aepack
跳转至:导航、​搜索

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 中的所有属性和元素,而后者不知道这些。

也可以看看

模块 Carbon.AE
内置对 Apple Event Manager 例程的访问。
模块 aetypes
Apple 事件描述符类型代码的 Python 定义。