[패스트캠퍼스python] 클래스의 self의 이해, 클래스, 인스턴스 변수
💡 핵심 요약 (TL;DR)
클래스의 self의 이해, 클래스, 인스턴스 변수의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. 두번째 방법의 타입에러를 해결하려면 아래 이미지처럼 하면 된다을 적용할 수 있다.
파이썬 인강 : 클래스의 self의 이해, 클래스, 인스턴스 변수
오늘은 꼭 알아야하면서도 엄청 중요한 개념이라고 할 수 있는 클래스의 self, 클래스, 인스턴스 변수에 대해 공부해보자

1. 클래스의 self의 이해
self 매개변수의 유무에 따른 차이를 아래 예시를 통해 확인해보자
1 | print() |
이제 function1을 호출해보자
1 | # self_Test.function1() |
function1은 클래스매서드이기에 그냥 출력하면 타입에러가 발생한다
아래와 같이 출력해야한다
1 | SelfTest.function1() |
잘 출력되는 것을 확인할 수 있다
self매개변수를 선언한 함수는 어떨까?
1 | self_Test.function2() |
두번째 방법의 타입에러를 해결하려면 아래 이미지처럼 하면 된다

터미널을 확인해보면 id값이 일치하는 것을 확인할 수 있다.
2. 변수 , 인스턴스 변수
클래스변수는 self가 없고 인스턴스변수는 self가 있어야한다
클래스변수는 공용으로 쓸 수 있다
1 | print() |
그리고 유저1과 유저2 그리고 웨어하우스의 네임스페이를 확인해보자
1 | print(user1.__dict__) |
이를 통해 유저1과2에는 이름밖에 없고 웨어하우스에 stock_num이 있다는 것을 알수있다
만약 유저안에서 stock_num을 찾는다면 어떻게 될까?
1 | print(user1.stock_num) |
만약 유저를 한명 더 추가한다면 아래와 같이 출력된다

네임스페이스안에 이름밖에 없었기때문에 stock_num을 못찾을것같지만 인스턴스는 자신의 네임스페이스에 없으면 클래스의 네임스페이스에서 찾아서 불러온다
이러한 점을 이용하여 연봉인상율같은 계산등에 활용할 수 있다.
[패스트캠퍼스python] 클래스의 self의 이해, 클래스, 인스턴스 변수