1
저는 파이썬에서 어떤 클래스에 함수를 작성하고 있습니다. 사람들은이 함수에 장식자인 @classmethod
을 추가하라고 제안했습니다.파이썬에서 classmethod를 사용해야하는 이유는 무엇입니까?
내 코드 :
import random
class Randomize:
RANDOM_CHOICE = 'abcdefg'
def __init__(self, chars_num):
self.chars_num = chars_num
def _randomize(self, random_chars=3):
return ''.join(random.choice(self.RANDOM_CHOICE)
for _ in range(random_chars))
제안 된 변화 : 나는 거의 항상에만 _randomize
기능을 사용하고
@classmethod
def _randomize(cls, random_chars=3):
return ''.join(random.choice(cls.RANDOM_CHOICE)
for _ in range(random_chars))
.
제 질문은 : classmethod
데코레이터 기능을 추가하면 얻을 수있는 이점은 무엇입니까?
이 메소드는 인스턴스의 어떤 상태도 사용하지 않는다는 것을 명확하게 해줍니다. 보통 'self'라고합니다. 또한 인스턴스를 만들지 않고 클래스에서 테스트 할 수 있음을 의미합니다. – jonrsharpe
또한,이 클래스가 else를 많이 포함하지 않는다면 함수와'functools.partial()'을 사용하는 것이 더 나을 것입니다. 아마도. –