클래스와 인스턴스의 차이(메서드, 생성자)

hodu·2022년 9월 19일
0

python

목록 보기
1/17

클래스

클래스는 쉽게 말하자면 와플을 만드는 "와플 메이커"라고 비유할 수 있다.
클래스를 이용하면 와플을 쉽게 찍어낼 수 있다.

여기서 한번 더 생각해보자. 함수로도 와플을 충분히 찍어낼 수 있을 것 같은데, 왜 클래스를 사용할까?

바로, “객체”를 정의하고 만들기 위한 변수와 메서드들의 집합이기 때문이다.

즉 클래스는 함수와는 다르게 변수들과 함수들을 모을 수 있는 집합이기 때문이다.

그럼 여기서 말하는 객체는 무엇일까?

와플 틀을 이용해 만들어진 하나하나의 와플을 의미한다.

각자 만들어진 와플은 서로 영향을 끼치지 않는다.
예를들어 와플메이커를 이용해 와플을 10개 만들었는데, 첫번째 와플을 반 먹었다고 해서 나머지 9개의 와플들의 반이 사라지지 않는다.

인스턴스

클래스의 객체가 소프트웨어에 실체화 된 것을 뜻한다.
이렇게 말하면 이해하기 어려우므로 아래 예제에서 정리해보자.

예제를 통한 클래스, 인스턴스 정리

아까 말한 와플메이커를 간단히 구현해보겠다.

class Waffle:
	def bake(self):
		print('와플을 굽습니다.')

strawberry_waffle = Waffle()
strawberry_waffle.bake()

# 출력 : 와플을 굽습니다.

와플 메이커(class)을 이용하여 strawberry_waffle 이라는 객체를 생성했다.
그리고 Waffle 클래스의 메서드 bake를 이용하여 와플을 구웠다.

  • strawberry_waffleWaffle이라는 와플 틀, 즉 클래스에 의해 만들어졌으므로 “객체”라고 한다.
  • strawberry_waffleWaffle의 “인스턴스”라고 한다.

인스턴스는 “관계 중심으로 표현” 할 때 사용함.
특정 객체가 어떤 클래스의 객체인지 표현해주려고 사용하는 말!

메서드

  • 클래스 안에서 구현하는 함수다. 위 예제에서는 bake가 메서드이다.
  • 특징 : 첫번째 매개변수 이름은 인스턴스 자신인 self가 들어가야 한다.
    → self를 왜 써야할까?

    self는
    ”외부 호출 및 내부 함수에서 해당 변수들을 사용할 수 있게 만들어주는 것”

    • self를 사용하지 않으면 해당 함수내에서만 사용가능한 지역변수를 의미함
    • self를 사용하면 속성 부여 및 다른 내부함수에서 호출이 가능해짐

생성자

  • init 메서드를 뜻함
  • 객체가 생성되면 자동으로 호출되어 객체를 초기화해줌
profile
안녕 세계!

0개의 댓글