gpt4 book ai didi

python - 如何使用 getattr/setattr 在运行时递增属性?

转载 作者:太空狗 更新时间:2023-10-30 00:00:31 24 4
gpt4 key购买 nike

我有一个有十个不同计数器的类。我需要在运行时递增其中一个或另一个,递增方法被告知要递增的计数器的名称。

我想知道是否有比这更简洁的方法:

def increment(self, name):
"""Increments a counter specified by the 'name' argument."""
setattr(self, name, getattr(self, name) + 1)
  • 我不太担心竞争条件等问题。
  • 不,您不能更改函数的调用方式。显然,实际代码比示例要简单一些。

最佳答案

您可以将计数器存储在字典中而不是属性中。

或者,你可以使用

def increment(self, name):
"""Increments a counter specified by the 'name' argument."""
self.__dict__[name] += 1

这是否“更干净”由您决定。

关于python - 如何使用 getattr/setattr 在运行时递增属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5289259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com