Pydbus中不同数量的参数
Posted
技术标签:
【中文标题】Pydbus中不同数量的参数【英文标题】:Varying amount of Arguments in Pydbus 【发布时间】:2019-06-17 00:19:42 【问题描述】:我现在设置了一个 Pydbus 服务器并导出了一些方法,但是一种方法让我一直在猜测。此方法中使用的参数数量正在发生变化。在 Python 中,这只需使用 MyMethod(*arg, **kwarg) 即可完成。如果我将此函数写入我的 XML 接口,我必须定义参数的确切数量。
有没有办法不指定参数的确切数量?这样我理论上可以在第一次使用时使用一个参数,第二次使用无限参数?
感谢您的帮助, 多米尼克
【问题讨论】:
【参考方案1】:如果您提供代码示例(来自自省 XML)来说明问题,具体回答这个问题会容易得多。
我猜你希望MyMethod
是多态的。这不是 D-Bus type system 默认的特性(所有参数列表都必须具体输入)。
不过,您可以使用asv
类型的单个参数(即MyMethod (asv args)
)自行实现。 D-Bus 类型asv
是变量值的字符串键字典,可以包含零个或多个这样的对。您可以使用它来允许将可变数量的有据可查的参数键/值对传递给您的方法。
您可能想阅读D-Bus API design guidelines 以获取有关如何设计良好 D-Bus API 的更多提示。
【讨论】:
以上是关于Pydbus中不同数量的参数的主要内容,如果未能解决你的问题,请参考以下文章