[파이썬] 클래스에서 'self'는 무엇인가

서대철·2023년 7월 14일
0

https://www.youtube.com/watch?v=oaiQ5hYKHTE
(위 영상을 기반으로 작성한 요약 글입니다)

파이썬 초보자로서 클래스와 메소드의 개념 중 하나인 'self' 매개변수가 이해하기 어려웠습니다. 위 링크의 영상을 참고하여 self 개념에 대해 요약해보았습니다.

class Employee:
    def set_salary(self, value):
        self.salary = value

일반적으로 IDE를 사용하여 클래스를 작성하면 메소드의 매개변수에 자동으로 'self'가 할당됩니다. 그리고 메소드를 작성할 때 'self'를 항상 입력하고 함수를 작성하는 것이 관례입니다.

self.salary = value

그렇다면 'self'의 역할은 무엇일까요? 제가 찾아본 결과 위 영상이 self 개념을 가장 깔끔하게 설명해주고 있습니다.

위에서 작성한 클래스에서 객체(또는 인스턴스) e를 생성하고 set_salary 메소드를 적용해보겠습니다.

class Employee:
    def set_salary(self, value):
        self.salary = value

e = Employee()
e.set_salary(3000)
print(e.salary)

set_salary() 함수를 호출할 때는 연봉 3000의 값만을 인수로 넣어주고, 'self' 매개변수는 생략되었습니다. 이는 파이썬에서 'self' 매개변수 값을 자동으로 처리하기 때문입니다. 'self' 안의 값은 클래스의 인스턴스인 'e'가 할당됩니다.

e.set_salary(3000)

이 코드가 실행될 때, 파이썬은 객체 'e'의 클래스와 그 안에 내장된 set_salary() 함수를 찾습니다. 그리고 파이썬은 객체 'e'와 'set_salary()' 기능 두 가지를 '메소드 객체'에 임시로 저장합니다. 이때 인스턴스 값인 'e'와 입력된 인수인 '3000'이 set_salary(self, value) 함수에 전달됩니다.

'코딩도장' 자료 중에 이를 클래스 인스턴스와 self 매개변수의 관계를 시각화한 이미지가 있어 첨부합니다.

(출처: 파이썬 코딩도장 34.2 속성 사용하기. 링크: https://dojang.io/mod/page/view.php?id=2373)

0개의 댓글