GLib.Variant 新建空数组
GLib.Variant new empty array
Documentation 表示 child_type must be non-None if n_children is zero
。所以我无法得到它。这里的逻辑在哪里?我应该为空数组使用什么类型?
这是我的示例代码:
from gi.repository import GLib
child_type = None
child_value = None
result_value = GLib.Variant.new_array(child_type, child_value)
这是输出:
./test.py:5: Warning: g_variant_new_array: assertion 'n_children > 0 || child_type != NULL' failed
result_value = GLib.Variant.new_array(child_type, child_value)
Traceback (most recent call last):
File "./test.py", line 5, in <module>
result_value = GLib.Variant.new_array(child_type, child_value)
TypeError: constructor returned NULL
当我创建非空数组时 - 一切正常。我可以按子项目的类型定义 child_type。但是我卡住了一个空数组。
有人知道吗?
P.S。 child_value = []
无效
What type should I use for an empty array?
与您用于 non-empty 数组的类型相同。 GVariant 数组是强类型的,因此 as
类型的空数组在语义上不同于 au
类型的空数组。您需要指定数组中 会 的元素类型,如果它不为空的话。
(从技术上讲,数组元素的类型实际上对数组的序列化形式的对齐要求有所不同,即使数组为空也是如此。所以这是一个实际的区别,也是一个纯粹的语义上的区别一个。)
Documentation 表示 child_type must be non-None if n_children is zero
。所以我无法得到它。这里的逻辑在哪里?我应该为空数组使用什么类型?
这是我的示例代码:
from gi.repository import GLib
child_type = None
child_value = None
result_value = GLib.Variant.new_array(child_type, child_value)
这是输出:
./test.py:5: Warning: g_variant_new_array: assertion 'n_children > 0 || child_type != NULL' failed
result_value = GLib.Variant.new_array(child_type, child_value)
Traceback (most recent call last):
File "./test.py", line 5, in <module>
result_value = GLib.Variant.new_array(child_type, child_value)
TypeError: constructor returned NULL
当我创建非空数组时 - 一切正常。我可以按子项目的类型定义 child_type。但是我卡住了一个空数组。
有人知道吗?
P.S。 child_value = []
无效
What type should I use for an empty array?
与您用于 non-empty 数组的类型相同。 GVariant 数组是强类型的,因此 as
类型的空数组在语义上不同于 au
类型的空数组。您需要指定数组中 会 的元素类型,如果它不为空的话。
(从技术上讲,数组元素的类型实际上对数组的序列化形式的对齐要求有所不同,即使数组为空也是如此。所以这是一个实际的区别,也是一个纯粹的语义上的区别一个。)