【问题标题】:How to represent dbus type b(oss) in python?如何在 python 中表示 dbus 类型 b(oss)?
【发布时间】:2011-05-06 10:04:35
【问题描述】:

我正在使用 python 开发 Mpris V2.1 接口。

文档中描述了接口: http://www.mpris.org/2.1/spec/Playlists.html#Property:ActivePlaylist

签名表明它的复杂类型包含布尔值、对象和字符串。我只是想知道如何在 python 中表示类型。我是否有提供者包含每个元素的列表或元组?我已经测试过了,但似乎不起作用。

【问题讨论】:

    标签: python dbus


    【解决方案1】:

    根据 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 模块导出属性的详细信息。

    【讨论】:

    • 谢谢。很有帮助。
    猜你喜欢
    • 2012-10-27
    • 2011-08-13
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    相关资源
    最近更新 更多