파이썬 클라스 설명 (2) 인스턴스와 메소드란?

2021. 12. 13. 18:09·개발/Python

이전 글에서는 클라스의 의미에 대해 알아봤는데요. 클라스를 공부하다보면 인스턴스와 메소드라는 용어를 접하게 됩니다. 이는 무엇일까요?

 

아래는 기존에 만들었던 쿠키 박스 클라스 코드입니다. 이를 통해 인스턴스와 메소드의 의미를 살펴볼 수 있습니다.

class cookieBox:
    def makingCookie(self, *cookies):
        box = []
        for cookie in list(cookies):
            box.append(cookie)
        print(box)

cookieBox1 = cookieBox()
cookieBox2 = cookieBox()

cookieBox1.makingCookie('whiteCookie', 'blackCookie')
# ['whiteCookie', 'blackCookie']
cookieBox2.makingCookie('whiteCookie', 'brownCookie')
# ['whiteCookie', 'brownCookie']

인스턴스란?

쿠키 박스를 만드는 클라스에서 다음 부분이 개별적인 박스를 생성하는 부분입니다. 이처럼 클라스를 통해 만들어진 객체를 인스턴스(instance)라고 합니다.

cookieBox1 = cookieBox()
cookieBox2 = cookieBox()

그렇다면 이를 일반적인 객체와 굳이 구분하는 이유는 무엇일까요? 바로, 해당 객체가 특정 클라스로부터 비롯되었다는 관계를 명시적으로 설명할 수 있기 때문입니다.

메소드란?

메소드(method)란 클라스 내의 함수를 일컫습니다. 인스턴스와 마찬가지로 이를 보통의 함수와 다르게 일컫는 이유는 클라스와의 관계를 설명하기 위함입니다.

 

위 코드에서는 다음 부분이 cookieBox 클라스 내 makingCookie() 함수를 호출하는 부분입니다.

cookieBox1.makingCookie('whiteCookie', 'blackCookie')
# ['whiteCookie', 'blackCookie']
cookieBox2.makingCookie('whiteCookie', 'brownCookie')
# ['whiteCookie', 'brownCookie']

그런데 makingCookie()의 인자를 살펴보면 self라는 메소드를 호출할 때는 사용하지 않는 변수가 포함되어 있는 것을 볼 수 있습니다. 이는 무엇일까요?

 

결론부터 말하자면, 첫 번째 매개변수(여기서는 self이나 다른 명칭을 사용할 수도 있음)에는 메소드를 호출한 객체(cookieBox1과 cookieBox2)가 자동으로 전달됩니다.

 

각 객체에서 메소드를 호출하면 다음과 같은 일이 발생하며, 이를 통해 독립적인 객체가 생성됩니다.

cookieBox1.makingCookie('whiteCookie', 'brownCookie')
cookieBox1.makingCookie('whiteCookie', 'blackCookie')      
    def makingCookie(cookieBox1, *cookies):
    box = []
    for cookie in list(cookies):
        box.append(cookie)
    print(box)
cookieBox2.makingCookie('whiteCookie', 'brownCookie')
cookieBox1.makingCookie('whiteCookie', 'blackCookie')      
    def makingCookie(cookieBox2, *cookies):
    box = []
    for cookie in list(cookies):
        box.append(cookie)
    print(box)

 

'개발 > Python' 카테고리의 다른 글

파이썬 클라스 설명 (3) self와 __init__이란?  (0) 2021.12.21
파이썬 클라스 설명 (1) 클라스란?  (0) 2021.12.13
파이썬 함수 설명 (2) 변수와 스코프  (0) 2021.12.09
'개발/Python' 카테고리의 다른 글
  • 파이썬 클라스 설명 (3) self와 __init__이란?
  • 파이썬 클라스 설명 (1) 클라스란?
  • 파이썬 함수 설명 (2) 변수와 스코프
  • 파이썬 함수 설명 (1) 입력과 출력
휘Hwi
휘Hwi
여행, 사진, 개발, 책 이야기를 기록하는 여행자 휘의 블로그 𓂍
  • 휘Hwi
    휘: 끝나지 않은 이야기
    휘Hwi
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 기록
        • 일상 에세이
        • 인사이트
        • 투자와 재테크
        • 코인 이야기
        • 아카이빙
        • 집무실 레터
        • 사랑에 대하여
        • 번역 이야기(完)
        • 프리랜서 일지(完)
      • 여행
        • 🌎 세계 여행기 S1 (完)
        • 🌊 삼삼한 여행기 (完)
        • 🚶 온더로드
        • 🇯🇵 일본
        • 🏝️ 발리
        • 🇻🇳 베트남
        • 🇱🇰 스리랑카
        • 🇮🇳 인도
        • 🇹🇭 태국
        • 🇸🇬 싱가포르
        • 🇦🇺 호주
        • 🇭🇰 홍콩
        • 🇰🇷 한국
        • 🍚 여행자의 한 끼
        • ℹ️ 여행 정보
      • 사진
        • 사진가
        • 사진 이론과 생각
        • 사진 관련 정보
      • 영상
        • 파이널컷 모션 공부
        • 고프로 GoPro
        • 영상 관련 정보
      • 책
        • 책 읽고 쓰기
      • 개발 N
        • 티스토리
        • Internet
        • HTML
        • CSS
        • JavaScript
        • Typescript
        • React
        • Node.js
        • Express
        • NestJS
        • Python
        • Django
        • MySQL
        • MongoDB
        • AWS
        • Deployment
        • Terminal
        • Git N
        • Glossaries
        • Articles
        • Projects
        • TIL;
      • 미분류
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
휘Hwi
파이썬 클라스 설명 (2) 인스턴스와 메소드란?
상단으로

티스토리툴바