如何在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
相关产品推荐
相关产品推荐

