在以下示例中,我们假设有一个包含输入框和复选框的表单。首先,我们将使用递归函数来遍历所有子部件,并将其值存储在一个列表中。
def get_widget_values(widget):
values = []
# 如果部件是输入框,获取其值
if isinstance(widget, Input):
values.append(widget.value)
# 如果部件是复选框,获取其选中状态
elif isinstance(widget, Checkbox):
values.append(widget.checked)
# 如果部件是容器部件(如表单),递归遍历其子部件
elif isinstance(widget, Container):
for child_widget in widget.children:
values.extend(get_widget_values(child_widget))
return values
在上述代码中,我们定义了一个 get_widget_values
函数,它接受一个部件作为参数,并返回该部件及其子部件的值列表。
首先,我们创建一个空列表 values
来存储部件的值。
然后,我们检查部件的类型。如果部件是一个输入框,则将其值添加到 values
中。如果部件是一个复选框,则将其选中状态添加到 values
中。
如果部件是一个容器部件(如表单),我们使用递归来遍历其子部件。对于每个子部件,我们调用 get_widget_values
函数,并将返回的值列表添加到 values
中。
最后,我们返回 values
列表,其中包含了所有部件的值。
请注意,以上代码是一个示例,实际实现可能会根据具体的部件库和框架而有所不同。