On this page
38.3. aepack — Python 变量和 AppleEvent 数据容器之间的转换
aepack模块定义用于将 Python 变量转换(打包)为 AppleEventDescriptors 并返回(解压缩)的函数。在 Python 中,AppleEventDescriptors 由模块Carbon.AE中定义的内置类型AEDesc
的 Python 对象处理。
Note
该模块已在 Python 3.x 中删除。
aepack模块定义以下Function:
aepack.
pack
(* x * [,* forcetype *])- 返回一个
AEDesc
对象,其中包含 Python 值 x 的转换。如果提供了* forcetype *,则它指定结果的 Descriptors 类型。否则,将使用 Python 类型到 Apple EventDescriptors 类型的默认 Map,如下所示:
- 返回一个
Python type | descriptor type |
---|---|
FSSpec |
typeFSS |
FSRef |
typeFSRef |
Alias |
typeAlias |
integer | typeLong(32 位整数) |
float | typeFloat(64 位浮点) |
string | typeText |
unicode | typeUnicodeText |
list | typeAEList |
dictionary | typeAERecord |
instance | see below |
如果* x *是 Python 实例,则此函数try调用__aepack__()
方法。此方法应返回AEDesc
对象。
如果上面未定义转换* x *,则此函数返回编码为文本 Descriptors 的值(repr()函数)的 Python 字符串表示形式。
aepack.
unpack
(* x * [,* formodulename *])-
- x 必须是
AEDesc
类型的对象。此函数返回 Apple 事件 Descriptors x *中数据的 Python 对象表示形式。简单的 AppleEvent 数据类型(整数,文本,浮点数)作为其明显的 Python 对应物返回。 Apple Event 列表作为 Python 列表返回,并且 list 元素以递归方式解压缩。除非指定了formodulename
,否则对象引用(例如line 3 of document 1
)作为aetypes.ObjectSpecifier的实例返回。Descriptors 类型为 typeFSS 的 AppleEventDescriptors 以FSSpec
对象的形式返回。 AppleEvent 记录 Descriptors 以 Python 字典的形式返回,带有 4 个字符的字符串键和元素以递归方式解压缩。
- x 必须是
-
可选的formodulename
参数由gensuitemodule生成的存根软件包使用,并确保在正确的模块中查找对象说明符的 OSA 类。这样可以确保,例如,如果 Finder 为窗口返回对象说明符,则您将获得Finder.Window
而不是通用aetypes.Window
的实例。前者不知道 Finder 中窗口具有的所有属性和元素,而后者则不知道。