인스턴스 및 클래스 메서드에는 하나 이상의 위치 매개 변수가 있어야 합니다.

 

모든 인스턴스 메서드에는 적어도 하나의 위치 매개 변수가 있어야 합니다. 이 매개 변수는 메서드가 호출되는 개체 인스턴스를 참조합니다. 하나 이상의 매개 변수가 없는 인스턴스 메서드를 호출하면 “TypeError”가 발생합니다. 관례적으로 이 첫 번째 매개변수는 보통 “self”로 명명됩니다.

클래스 메소드, 즉 @classmethod 어노테이션이 있는 메소드도 하나 이상의 매개 변수가 필요합니다. 유일한 차이점은 클래스 인스턴스 대신 클래스 자체를 수신한다는 것입니다. 관례적으로 이 첫 번째 매개변수는 일반적으로 cls로 명명됩니다. __new____init_subclass__@classmethod 데코레이터가 없어도 클래스를 첫 번째 인수로 사용합니다.

이 규칙은 클래스 메서드의 인스턴스에 위치 매개 변수가 하나 이상 없을 때 문제를 발생시킵니다.

규칙을 어긴 코드

class MyClass:
    def instance_method():  # 규칙을 어긴 코드. "self" 매개 변수 없음
        print("instance_method")

    @classmethod
    def class_method():  # 규칙을 어긴 코드. "cls" 매개 변수 없음
        print("class_method")

규칙을 준수한 해결책

class MyClass:
    def instance_method(self):
        print("instance_method")

    @classmethod
    def class_method(cls):
        print("class_method")


    @staticmethod
    def static_method():
        print("static_method")

같이보면 좋은 자료


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

원문으로 바로가기

Star This Project