Python 메소드 함수 차이

Jinsung·2021년 9월 3일
0

python

목록 보기
10/25
post-thumbnail
post-custom-banner

메서드

클래스 내에 선언되어 있는 함수가 바로 메서드

파이썬에서 메서드는 크게

  • 인스턴스 메서드(instance method) : 가장 흔히 쓰이는 것으로, 인스턴스 변수에 엑세스할 수 있도록 첫 번째 인자에 항상 객체 자신을 의미하는 self파라미터를 갖는다.(self이외에도 여러개의 파라미터를 가질 수 있다.)

해당 메서드를 호출한 객체에만 영향을 미친다.
객체 속성에 접근이 가능하다.

구조 :
해당 클래스 안에서는 self.메서드명
클래스 밖에서는 객체.메서드명

  • 클래스 메서드(class method) : 정적 메서드와 비슷한데, 객체 인스턴스를 의미하는 self 대신 cls 라는 클래스를 의미하는 파라미터를 전달받는다.

정적 메서드는 이러한 cls 파라미터를 전달받지 않는다. 클래스 메서드는 이렇게 전달받은 cls 파라미터를 통해 클래스 변수 등을 엑세스할 수 있다.

클래스명.클래스메서드명 또는
객체명.클래스메서드명
cls를 사용하면 클레스 메서드 내부에서 현재 클래스의 인스턴스를 만들 수도 있다. (cls() = 현재클래스명() 를 의미

  • 정적 메서드(static method) : 정적 메서드는 보통 객체 필드와 독립적이지만 로직상 클래스내에 포함되는 메서드에 사용된다.

정적 메서드는 메서드 앞에 @staticmethod 라는 Decorator를 표시하여 해당 메서드가 정적 메서드임을 표시

클래스명.정적메서드명 또는 객체명.정적메서드명
인스턴스 상태를 변화시키지 않는 메서드를 만들 때 사용

함수

메서드는 클래스 및 객체(object)와 연관되어 있는 함수

함수를 만들드는 구조

def 함수명(입력값):
수행문...
return 출력값

만들고 사용

object.method_name()

post-custom-banner

0개의 댓글