linux - Python 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 方法的签名以明确声明它是一个字符串数组,但它没有帮助。
如何确保该方法不会引发空列表异常?谢谢。
解决方案
原来你不能只指定“signature='as'”——它必须是“out_signature='as'”。
现在它起作用了。
推荐阅读
- swift - 如何将文本附加到活动的 UITextField - Swift
- laravel - Nginx 重写到不同的站点给出“未找到输入文件”
- json - ConvertTo-Json 拆箱单品
- php - mysqli_connect 返回 NULL
- ios - 了解调度队列线程
- javascript - 如何在“v-for”表上提取函数
- python - 如何确定一个类的classmethod和staticmethod属性?
- firebase - 跨多个服务实例使用相同的 Firebase 云消息传递服务器密钥
- c# - InvalidOperationException - 不能在当前元素的模板中设置“模板”属性
- python - 在 Jupyter 中绘制熊猫时的用户警告