You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中迭代设置类的指定属性(类比Matlab结构体操作)

在Python类中批量为指定属性赋值0

你可以利用Python内置的setattr()函数实现和Matlab完全一致的逻辑——遍历指定属性列表,循环为实例动态设置属性值,避免逐个编写赋值语句。

基础实现代码

class Example:
    def __init__(self):
        # 定义需要赋值的目标属性列表
        target_fields = ["a", "b", "d"]
        # 循环批量赋值
        for field in target_fields:
            setattr(self, field, 0)

优化维护版(可选)

如果需要统一管理属性列表,可将其定义为类属性,后续修改更便捷:

class Example:
    # 类级别统一维护需要初始化的属性
    INITIAL_FIELDS = ["a", "b", "d"]
    
    def __init__(self):
        for field in self.INITIAL_FIELDS:
            setattr(self, field, 0)

逻辑说明

setattr(obj, name, value)是Python内置函数,作用是给对象obj设置名为name的属性并赋值value,这和Matlab中structure.(field) = 0的动态字段赋值逻辑完全对应,完美解决批量赋值的冗余问题。

内容的提问来源于stack exchange,提问作者Valery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 07:39:59