본문 바로가기
Sprint_DA01/위클리 페이퍼

위클리 페이퍼 #4 - 클래스와 인스턴스, 정적 메소드

by Toddler_AD 2024. 7. 12.

클래스와 인스턴스

- 클래스와 인스턴스는 객체지향 프로그래밍의 기본 개념이다.

  • 클래스 : 객체를 만들기 위한 설계도 또는 템플릿으로, 객체가 가져야 할 속성과 메소드를 정의
  • 인스턴스 : 클래스에서 정의된 내용을 바탕으로 생성된 실제 객체로, 클래스의 속성와 메소드를 사용할 수 있다.

정적 메소드

- 정적 메소드는 클래스에 속하지만 인스턴스에 종속되지 않는 메소드이다. 정적 메소드는 클래스의 속성이나 다른 메소드에 접근할 필요가 없을 때 유용하다.

- 정적 메소드는 @staticmethod 데코레이터를 사용하여 정의한다. 정적 메소드는 첫 번째 인수로 self를 받지 않으며, 클래스 이름을 통해 직접 호출이 가능하다.

  • 클래스와 관련 있지만 인스턴스와는 관련이 없다 - 정적 메소드는 클래스의 상태나 속성에 접근할 필요가 없는 기능을 구현할 때 사용한다.
  • 첫 번째 인수로 self를 받지 않는다 -  정적 메소드는 인스턴스의 속성에 접근할 필요가 없으므로 self를 받지 않는다.
  • 클래스 이름을 통해 직접 호출 - 정적 메소드는 클래스 이름을 통해 직접 호출할 수 있다. 인스턴스를 생성할 필요가 없다.

- 정적 메소드와 클래스 메소드의 차이는 다음과 같다.

  • 정적 메소드(@staticmethod) - 클래스와 인스턴스의 속성이나 메소드에 접근하지 않는 메소드이다.
  • 클래스 메소드(@classmethod) - 첫 번째 인수로 클래스를 받으며(cls로 통상적으로 명명), 클래스를 통해 호출될 때 클래스의 상태에 접근할 수 있다.