我正在为 Rhythmbox 编写一个插件,其中发出的信号是传入一个类型的对象GArray
。GLib Arrays的文档向我展示了一些我感兴趣但无法访问的方法。
例如,g_array_index可以让我获得GArray 中的第 n 个项目,但我无法调用它。GArray 对象也没有向我展示任何有用的方法。
要了解我的意思,请在 Python 控制台中执行此操作:
from gi.repository.GLib import Array
x = Array()
dir(x)
这是 dir(x) 的输出
['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__gtype__', '__hash__', '__info__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_free_on_dealloc', 'copy', 'data', 'len']
我看不到从数组中读取的任何方法,也没有看到g_array_index
GLib Arrays 文档页面上提到的方法或任何其他方法。我也试过
for a in x:
print a
并且
list(x)
但我收到一个错误:
TypeError: 'Array' object is not iterable
尝试 x[0] 给出了这个:
TypeError: 'Array' object does not support indexing
该len
属性按预期给出了数组的长度。
该data
物业给出了这个
我如何处理我被传递的这个 GLib.Array?
我正在运行 Python 2.7.4