aepack
aepack - 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事件描述符类型的默认映射,如下所示:
Python类型 | 描述符类型 |
---|---|
FSSpec | typeFSS |
FSRef | typeFSRef |
Alias | typeAlias |
integer | typeLong ( 32位整数 ) |
float | typeFloat ( 64位浮点 ) |
string | typeText |
unicode | typeUnicodeText |
list | typeAEList |
dictionary | typeAERecord |
instance | 见下文 |
如果x
是一个Python实例,那么这个函数会尝试调用一个__aepack__()
方法。这个方法应该返回一个AEDesc
对象。
如果转换x
未在上面定义,则此函数返回编码为文本描述符的值的Python字符串表示形式(repr()函数)。
aepack.unpack(x[, formodulename])
x必须是AEDesc类型的对象。 该函数返回Apple事件描述符x中的数据的Python对象表示。 简单的AppleEvent数据类型(整数,文本,浮点数)作为其明显的Python对应数据返回。 Apple事件列表以Python列表形式返回,列表元素以递归方式解压缩。 对象引用(例如文档1的第3行)作为aetypes.ObjectSpecifier的实例返回,除非指定了formodulename。 描述符类型typeFSS的AppleEvent描述符作为FSSpec对象返回。 AppleEvent记录描述符以Python字典的形式返回,4个字符的字符串键和元素递归解压缩。
可选formodulename
参数由生成的存根包使用gensuitemodule
,并确保在正确的模块中查找对象说明符的OSA类。这可以确保,如果Finder返回窗口的对象说明符,那么您将获得一个实例,Finder.Window
而不是泛型aetypes.Window
。前者知道窗口在Finder中的所有属性和元素,而后者不知道这样的事情。
扩展内容
Module
Carbon.AE
内置对Apple Event Manager例程的访问。 Module
aetypes
Apple事件描述符类型的代码的Python定义。