Python DBus Return 空列表

Python DBus Return Empty List

我有一个 Python 2.7 DBus 方法,它 returns 一个字符串列表。当列表不为空时,该方法有效。当它为空时,会抛出一个异常 "Unable to guess signature from an empty list".

方法如下:

@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 方法的签名以明确声明它是一个字符串数组,但没有帮助。

如何确保该方法不会抛出空列表异常?谢谢

原来你不能只指定 "signature='as'" - 它必须是 "out_signature='as'".

现在可以了。