class QJSValueIterator#

QJSValueIterator 类提供了一个 Java 风格的迭代器,用于 QJSValue更多

摘要#

方法#

注意

此文档可能包含从 C++ 自动转换为 Python 的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译存在问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来让我们知道。

详细描述#

警告

本节包含从 C++ 自动转换为 Python 的代码片段,可能包含错误。

QJSValueIterator 构造函数接受一个 QJSValue 参数。构造之后,迭代器位于属性序列的起始位置。以下是如何遍历 QJSValue 的所有属性

object = QJSValue()
...
it = QJSValueIterator(object)
while it.hasNext():
    it.next()
    print(it.name(), ": ", it.value().toString())

next() 使迭代器前进。函数 name()value() 返回跳过的最后一个项的名称和值。

请注意,QJSValueIterator 仅遍历 QJSValue 的属性;即它不会遵循原型链。您可以使用下面的循环来遍历原型链

obj = ... # the object to iterate over
while obj.isObject():
    it = QJSValueIterator(obj)
    while it.hasNext():
        it.next()
        print(it.name())

    obj = obj.prototype()

参见

属性()

__init__(value)#
参数:

valueQJSValue

构建用于遍历 object 的迭代器。迭代器设置为在属性序列的起始位置(在第一个属性之前)。

hasNext()#
返回类型:

bool

如果迭代器前方至少有一个项(即迭代器不在属性序列的末尾),则返回 true;否则返回 false。

参见

next()

name()#
返回类型:

str

返回使用 next() 跳过的最后一个属性的名称。

参见

value()

next()#
返回类型:

bool

将迭代器向前移动一个位置。如果迭代器前方至少有一个项目(即迭代器还没有到达属性序列的末尾),则返回 true;否则返回 false。

参见

hasNext() name()

value()#
返回类型:

QJSValue

返回使用 next() 跳过的最后一个属性的值。

参见

name()