Python DBus返回空列表

时间:2018-07-31 12:05:07

标签: linux python-2.7 dbus

我有一个Python 2.7 DBus方法,该方法返回字符串列表。当列表不为空时,该方法有效。当它为空时,将引发一个异常,指出“无法从空列表中猜测签名”。

这是方法:

@dbus.service.method('blecnx.comp.com.control', signature='as')
def getSlaveList(self):
    global connectedSlaves
    print("Interface:getSlaveList() getSlaveList called - length is: %s" % (len(connectedSlaves)))
    if len(connectedSlaves) == 0:
        return dbus.Array(dbus.Array([], signature='as'))
    else:
        return connectedSlaves

这里是例外:

ERROR:dbus.service:Unable to guess signature for arguments (dbus.Array([], signature=None),): <type 'exceptions.ValueError'>: Unable to guess signature from an empty list

我试图更新DBus方法的签名,以明确声明它是字符串数组,但没有帮助。

如何确保该方法不会引发带有空列表的异常?谢谢。

1 个答案:

答案 0 :(得分:0)

结果是您不能只指定“ signature ='as'”-它必须是“ out_signature ='as'”。

现在可以了。