self
는 파이썬 클래스에서 매우 중요한 개념이며, 혼동하기 쉬운 부분이기도 합니다.- 메서드의 첫 번째 매개변수 self를 명시적으로 구현하는 것은 파이썬만의 독특한 특징이다.
- 예를 들어 자바와 같은 언어는 첫 번째 매개변수 self가 필요없다.
🔍 1. self
가 필요한 이유
self
는 인스턴스 자신을 가리키는 참조 변수입니다.클래스 안의 메서드는 항상 첫 번째 인자로
self
를 받아야 그 인스턴스의 속성이나 메서드에 접근할 수 있게 됩니다.class FourCal:
def setdata(self, first, second):
self.first = first # 인스턴스 변수에 저장
self.second = second
여기서
self.first
는 해당 인스턴스(a)의 first라는 속성을 의미합니다.즉,
a.first = 4
가 되는 겁니다.🧠 2. a.setdata(4, 2)
처럼 self를 직접 안 넣어도 되는 이유
파이썬에서 메서드를 호출할 때는
self
를 자동으로 전달해 줍니다.a.setdata(4, 2)
이렇게 쓰면 실제 내부에서는 다음처럼 동작합니다:
FourCal.setdata(a, 4, 2)
즉,
self
는 자동으로 a
인스턴스가 전달되는 것이고,사용자가 직접 넣지 않아도 되는 이유는 파이썬이 자동으로 첫 인자로 넘겨주기 때문입니다.
🧪 자바와 비교 (간단하게)
자바에서는
this
키워드를 사용해서 현재 객체를 가리키지만,메서드 선언에
this
를 직접 쓰지 않습니다. 파이썬은 메서드 선언에 self
를 반드시 써야 한다는 점이 다릅니다.class FourCal {
int first;
int second;
void setData(int first, int second) {
this.first = first;
this.second = second;
}
}
자바: this는 선택적 사용파이썬:self
는 반드시 첫 번째 매개변수로 명시
✅ 요약
질문 | 설명 |
self 가 필요한 이유 | 인스턴스 자신에 접근하기 위해 (속성 저장 등) |
a.setdata(4,2) 에 self를 안 넣는 이유 | 파이썬이 자동으로 인스턴스( a )를 self에 전달함 |
자바와 차이점 | 자바는 this 를 생략 가능, 파이썬은 self 를 반드시 첫 인자로 선언해야 함 |
Share article