classmethod staticmethod
클래스 메서드에서 cls
대신 self
를 사용할 수 없습니다.
Python에서 클래스 메서드의 첫 번째 매개변수는 일반적으로 클래스 자체를 나타내는 ‘cls’로 이름이 지정됩니다. 다른 클래스 수준 특성에 액세스하거나 메서드 내에서 다른 클래스 메서드를 호출하는 데 사용됩니다.
반면에 self
는 클래스의 인스턴스를 참조하기 위해 인스턴스 메소드의 첫 번째 매개변수로 일반적으로 사용됩니다. 이를 통해 인스턴스별 특성에 액세스하고 메서드 내에서 다른 인스턴스 메서드를 호출할 수 있습니다.
클래스 메서드는 인스턴스 수준이 아닌 클래스 수준에서 작동하므로 cls
대신 self
를 사용하면 오해의 소지가 있고 혼란을 초래할 수 있습니다.
따라서 클래스 메서드의 첫 번째 매개변수로 cls
를 사용하고 관례를 따르는 것이 가장 좋습니다.
