0

我现在设置了一个 Pydbus 服务器并导出了一些方法,但一种方法让我一直在猜测。此方法中使用的参数数量正在发生变化。在 Python 中,这只需使用 MyMethod(*arg, **kwarg) 即可完成。如果我将此函数写入我的 XML 接口,我必须定义参数的确切数量。

有没有办法不指定参数的确切数量?这样我理论上可以在第一次使用时使用一个参数,第二次使用无限参数?

谢谢你的帮助,多米尼克

4

1 回答 1

0

如果您提供代码示例(来自自省 XML)来说明问题,那么具体回答这个问题会容易得多。

我猜你想要MyMethod多态。默认情况下,这不是D-Bus 类型系统的特性(所有参数列表都必须具体键入)。

不过,您可以自己实现这一点,使用 type 的单个参数a{sv},即MyMethod (a{sv} args). D-Bus 类型a{sv}是变量值的字符串键字典,可以包含零个或多个这样的对。您可以使用它来允许将可变数量的有据可查的参数键/值对传递给您的方法。

您可能想阅读D-Bus API 设计指南,以获取有关如何设计好的 D-Bus API 的更多提示。

于 2019-01-23T13:02:22.143 回答