파이썬 OOP method

0
post-thumbnail

참고자료

Python OOP Method

  • python opp에서 내부 메소드가 instance, class, static 크게 3가지로 나뉨

Instance method

  • self == 본인 객체
  • 일반적으로 가장 많이 사용하게 되는 유형
  • instance가 생성되고 호출이 되는 method
  • 해당 메서드를 호출한 객체에만 영향을 미친다
  • self인자를 통해 __init__ 에서 정의한 인스턴스 변수에 접근할 수 있음
  • 용도: 인스턴스 혹은 변수의 따라서 다르게 동작해야하는 매서드

Class method

  • cls → @classmethod 데코레이터를 사용하여 선언 가능
  • 클래스 매서드의 첫 번째 매개변수는 본인 클래스
  • 인스턴스 없이 호출 가능. 해당 클래스로 생성된 객체로 부터 호출이 되는 것이 아니라 클래스 자체에서 직접 호출
  • cls를 사용하면 매서드 안에서 현재 클래스의 인스턴스 생성 가능
  • 클래스 메소드는 인스턴스 변수나 메소드에 접근할 수 없지만 클래스 변수에 접근이 가능
  • cls.클래스 속성명으로 클래스 속성에는 접근이 가능
  • 용도: 인스턴스 내부적인 데이터(변수)하고 상관없이 동작하는 매서드

Static method

  • 앞서 설명한 두 메소드와는 다르게 인스턴스나 클래스를 첫 번째 인자로 받지 않음
  • 인스턴스 선언 후 사용해도 되고 선언하지 않고도 사용 가능
  • 얼핏 보면 @classmethod와 큰 차이가 없어보임
  • 스택틱 메소드는 클래스 안에서 정의되어 클래스 네임스페이스 안에 있을 분 사실 상 일반 함수
  • 하지만 클래스와 연관성이 있는 함수를 클래스 안에 정의하여 클래스나 인스턴스를 통해서 호출하여 조금 더 편하게 사용 가능
  • 인스턴스나 클래스 자체에 아무런 영향을 미치지 않을 때 스태틱 메소드를 사용

0개의 댓글