[python study note] 클래스, 객체, 인스턴스, 메서드, self

2025. 3. 13. 21:04Python, Django/Python

원래 사용하던 블로그 - https://yeonnan.hashnode.dev/selfclass?source=more_series_bottom_blogs

 

클래스, 객체, 인스턴스, 메서드, self

파이썬 클래스 클래스 : 제품의 설계도 객체 : 설계도로 만든 제품 한개의 설계도로 여러개의 제품을 만들 수 있다.즉, 하나의 클래스로부터 여러개의 객체를 만들어낼 수 있다. 클래스 용어 클

yeonnan.hashnode.dev

 

파이썬 클래스

 

 

클래스 : 제품의 설계도

객체 : 설계도로 만든 제품

한개의 설계도로 여러개의 제품을 만들 수 있다. 
즉, 하나의 클래스로부터 여러개의 객체를 만들어낼 수 있다.

 


 

클래스 용어

클래스제품의 설계도

객체 설계도로 만든 제품
속성 클래스안의 변수
메서드 클래스안의 함수
생성자 객체를 만들 때 실행되는 함수
인스턴스 메모리에 살아있는 객체

 


 

클래스 만들기

메서드이름 뒤의 괄호 안에는 항상 self를 매개변수로 가지고 있는다.

self는 객체 자기자신을 말하는 것으로 메서드들의 첫번째 매개변수는 객체 자기자신이 들어간다.

class 클래스이름:
  def 메서드이름(self):
     명령블록

 

객체 = 클래스이름() : 이걸 실행하고 나면 객체가 나오는데 그 객체를 변수에 할당해주는 것이다.

객체.메서드() : .은 ~의라고 해석하면 된다. 객체의 메서드를 호출한다.

shark = Monster()  # shark라는 객체를 Monster 클래스로부터 만들었다.
shark.say()  # shark의 say 메서드

 


 

속성 추가하기

init : 생성자 함수, name : 속성값

self.name = name : Moster클래스의 name이 속성이 들어가게 된것이다.

class Monster:
  def __init__(self, name):
     self.name = name  # 객체 자기자신의 name이라는 속성은 init 함수로 부터 받은 name으로 할당하겠다.
  def say(self):
     print(f'나는 {self.name}')  # self.name은 Monster 클래스의 속성
shark = Monster("상어")  # Monster 클래스로 부터 객체를 만들어 내는데, 매개변수로 상어를 넣어주겠다.
shark.say()  # shark의 say 메서드를 호출하겠다.

 

shark = Monster(”상어”)를 해주면 제일 먼저 호출되는건 생성자 def init (self, name):이다.

상어 데이터가 name자리로 들어가고, name은 self.name = name의 name으로 간다.

self자리에는 만들고 있는 객체인 shark가 들어간다.

즉, shark 객체의 이름 속성은 상어다.