sta*_*nka 6 python casting dbus
我正在使用dbus-python,我需要将响应(fe dbus.Dictionary - 但通常是任何响应)作为本机Python类型.是的,人们可以编写递归转换器,但我想我一定错过了一些明显的东西?必须有一种方法如何使用dbus将这些怪物转换回Python本机类型.或者不是吗?
dbus.Dictionary({dbus.String(u'CanGoNext'): dbus.Boolean(True, variant_level=1), dbus.String(u'CanPause'): dbus.String(u'MinimumRate'): dbus.Int32(14, variant_level=1) ...
Run Code Online (Sandbox Code Playgroud)
你不需要。它们是本机类型的子类,因此您只需像使用本机类型一样使用它们即可:
>>> import dbus
>>> v = dbus.Dictionary({dbus.String(u'CanGoNext'): dbus.Boolean(True, variant_level=1), dbus.String(u'CanPause'): dbus.Boolean(False, variant_level=1), dbus.String(u'MinimumRate'): dbus.Int32(14, variant_level=1)})
>>> print v['MinimumRate']
14
>>> if v['CanGoNext']: print 'Go'
...
Go
>>> if v['CanPause']: print 'Pause'
...
>>>
Run Code Online (Sandbox Code Playgroud)