首页 > 解决方案 > 在循环中更新多个类变量的 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”

标签: pythonpython-3.x

解决方案


您可以使用以下setattr功能:

for i in range(5):
    setattr(Table, f"acc{i}", i)

推荐阅读