我想在循环中使用相似的名称更新类变量:
我有以下代码:
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:无法分配给函数调用”
答案 0 :(得分:2)
您可以使用setattr
函数:
for i in range(5):
setattr(Table, f"acc{i}", i)
答案 1 :(得分:2)
使用setattr
设置对象的属性值
for i in range(5):
print(getattr(Table, f"acc{i}"))
setattr(Table, f"acc{i}", i)