Python允许使用unpack()
方法将GLib变体转换为PyGObject对象(请参阅GLib.Variant.unpack)。
然而,有没有一种直接的方法来做相反的事情呢?
例如,我可以使用GLib构造函数创建任意的Variant变量对象:
>>> myglibvariant = GLib.Variant("a{sv}", { 'test': GLib.Variant('s', 'value')})
并使用unpack()
函数在一个步骤中创建一个Python对象:
>>> myglibvariant.unpack()
{'test': 'value'}
然而,有没有一种方法可以一步完成相反的事情呢?例如。
>>> myglibvariant = GLib.Variant.pack({'test': 'value'})
发布于 2020-08-06 02:39:00
不,因为您必须指定类型。(在{'test': 'value'}
示例中,pack函数必须猜测类型是a{ss}
还是a{sv}
,或者也可能是{ss}
或{sv}
。
https://stackoverflow.com/questions/63264590
复制相似问题