python - 在循环中更新多个类变量的 Pythonic 方法?
问题描述
我想在循环中更新具有相似名称的类变量:
我有以下代码:
class Table:
def __init__(self):
pass
acc_counter = 0
acc0 = 0
acc1 = 0
acc2 = 0
acc3 = 0
acc4 = 0
我可以手动更新每个值:
Table.acc0 = 0
Table.acc1 = 1
Table.acc2 = 2
Table.acc3 = 3
Table.acc4 = 4
但是,我想知道是否可以循环执行,例如:
for i in range(5):
print(getattr(Table, f"acc{i}"))
#getattr(Table, f"acc{i}") = i
如果代码的最后一行未注释,则返回:“SyntaxError: can't assign to function call”
解决方案
您可以使用以下setattr
功能:
for i in range(5):
setattr(Table, f"acc{i}", i)
推荐阅读
- cartopy - Cartopy,带有 NorthPoleStereo 的 set_extent 不起作用
- javascript - 在@DBLookup 中处理空值
- javascript - 如何在不是对象或函数的对象实例上进行原型设计?
- r - 如何将集合项与随机元素混合
- javascript - D3更新svg的数据
- javascript - JavaScript 字符串在传递给 Rust WebAssembly 模块时为空
- c# - 如何使用 C# 打印或显示节点中包含的值?
- python - 获取 html 属性值,其中属性名称包含带有 xpath 表达式的冒号
- python - 仅对 Pandas 数据框中的一部分列应用操作
- sql-server - 如何将版本更改为指定的数字模式?