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

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

·

2 min read

파이썬 클래스

클래스 : 제품의 설계도

객체 : 설계도로 만든 제품

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


클래스 용어

클래스

제품의 설계도

객체

설계도로 만든 제품

속성

클래스안의 변수

메서드

클래스안의 함수

생성자

객체를 만들 때 실행되는 함수

인스턴스

메모리에 살아있는 객체


클래스 만들기

메서드이름 뒤의 괄호 안에는 항상 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 객체의 이름 속성은 상어다.