10 개의 카운터가있는 클래스가 있습니다. 런타임에 이들 중 하나 또는 둘 다를 증가시켜야하고 increment 메소드는 증가 할 카운터의 이름을 알려줍니다.getattr/setattr을 사용하여 런타임에 속성을 증가시키는 방법은 무엇입니까?
이보다 깨끗한 방법이 있는지 궁금 해요 :
def increment(self, name):
"""Increments a counter specified by the 'name' argument."""
setattr(self, name, getattr(self, name) + 1)
- 나는 경쟁 조건 등에 대해 몹시 걱정하지 않아요.
- 아니요, 함수 호출 방식을 변경할 수 없습니다. 분명히, 실제 코드는 예제보다 조금 덜 사소합니다.
카운터에 이름 사전을 포함 할 수 있습니까? –
아래 답변에 대한 의견에서 언급했듯이 - 아니요, 카운터 사전은 없습니다. –