在线文档教程

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类型 描述符类型
FSSpectypeFSS
FSReftypeFSRef
AliastypeAlias
integertypeLong ( 32位整数 )
floattypeFloat ( 64位浮点 )
stringtypeText
unicodetypeUnicodeText
listtypeAEList
dictionarytypeAERecord
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定义。