inblog logo
|
devleekangho
    파이썬

    [Python] 클래스에서 self

    KangHo Lee's avatar
    KangHo Lee
    May 30, 2025
    [Python] 클래스에서 self
    Contents
    🔍 1. self가 필요한 이유🧠 2. a.setdata(4, 2)처럼 self를 직접 안 넣어도 되는 이유🧪 자바와 비교 (간단하게)✅ 요약
    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
    Contents
    🔍 1. self가 필요한 이유🧠 2. a.setdata(4, 2)처럼 self를 직접 안 넣어도 되는 이유🧪 자바와 비교 (간단하게)✅ 요약

    devleekangho

    RSS·Powered by Inblog