클래스 메서드의 첫 번째 인수는 명명 규칙을 따라야 합니다.

 

관례에 따라 클래스 메서드의 첫 번째 인수(즉 @classmethod 데코레이터가 있는 메서드)는 cls로 이름이 지정되어 인수가 클래스 자체임을 상기시켜 줍니다. 인수에 다른 이름을 지정하면 코드의 사용자와 관리자 모두를 혼란스럽게 할 가능성이 높습니다. 또한 cls 매개 변수를 잊어버렸음을 나타낼 수도 있습니다. 이 경우 메서드 호출이 실패할 가능성이 큽니다. 이 규칙은 init_subclass, class_getitemnew 메서드에도 적용됩니다. 첫 번째 인수는 항상 “self”가 아닌 클래스이기 때문입니다.

규칙을 어긴 코드

class Rectangle(object):

  @classmethod
  def area(bob, height, width):  # 규칙을 어긴 코드
    return height * width

규칙을 준수한 해결책

class Rectangle(object):

  @classmethod
  def area(cls, height, width):
    return height * width

같이보면 좋은 자료

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project