我正在使用python处理Mpris V2.1接口。
接口在文档中描述: http://www.mpris.org/2.1/spec/Playlists.html#Property:ActivePlaylist
签名显示它的复杂类型包含布尔值,对象和字符串。我只是想知道如何在python中表示类型。我有一个提供者列表或元组包含每个元素吗?我已经测试了它,但似乎无法正常工作。
答案 0 :(得分:3)
根据D-Bus规范,(b(oss))
是两个元素的结构,第一个是布尔值,第二个是三个元素的结构:一个对象路径和两个字符串。在python中,这映射为:
dbus.Struct((dbus.Boolean(a_boolean),
dbus.Struct((dbus.ObjectPath(s1),
dbus.String(s2),
dbus.String(s3)))),
signature="(b(oss))")
但它可以被用作简单的python元组,如:
( a_boolean, (s1, s2, s3) )
您在编写客户端还是服务器?在后一种情况下,您还应该检查this question,其中提供了有关使用python dbus模块导出属性的详细信息。