본문 바로가기
프로그래밍 이겨내기

[파이썬] 알기 쉽게 풀어쓴 클래스(class)

by 묨님 2023. 5. 31.
반응형

안녕하세요! 

오늘은 파이썬에서 이해하기 힘들었던 클래스에 대해 설명하고자 합니다!

 

  • 클래스란
  • 클래스의 기본구조
  • self 

클래스 란?

클래스는 객체를 정의하는 틀 또는 설계도입니다.

예를 들어 신청서 양식이라고 생각하시면 됩니다. 사람들이 신청서를 적을 때 전화번호, 이름 등과 같이 모든 사람에게 꼭 받아야 하는 내용을 양식으로 미리 써 놓음으로 인해 입력의 반복을 줄이는 역할을 합니다.

클래스를 도장에 빗대어 표현
클래스 예시

클래스의 기본구조

클래스의 기본 구조는 아래 그림과 같이 작성이 됩니다.

클래스 양식
 
 class AA라는 이름을 가진 클래스를 선언하는 문장이고

def __init__(self)는 클래스를 불렀을 때 가장 먼저 실행이 되는 함수입니다.

(self는 나중에 설명할게요!)

파란색 네모는 __init__함수를 실행되었을 때 실행되는 기능을 말합니다. 예를 들어 파란색 네모에 print(1)이라는 것이 있다면 숫자 1을 출력하는 기능을 가지고 있는 부분입니다. 이 부분을 메서드라고 부릅니다.

이 클래스를 사용하기 위해선 어떻게 해야할까요?
class A: 
    def say_a(self):      
        print("a")
a = A()  # 인스턴스화(객체) 
a.say_a()  # a 객체(인스턴스) 뒤에 .을 붙이고 메소드 호출
이 앞의 코드 처럼 클래스 A를 a로 인스턴스화를 해야지 a.say_a()를 입력하면
클래스 A에 있는 함수 say_a()의 메서드(내용)을 호출할 수 있습니다.

또 한 가지 예시로 

class A: 
    def __init__(self):      
        print("a")
a = A()  # 인스턴스화(객체)

함수 __init__은 클래스를 불렀을 때 가장 먼저 실행되는 함수여서

인스턴스화했다는 거 자체로 함수를 따로 안 불러도 a가 출력됩니다.

self

함수 밖에서 클래스를 사용할 때 인스턴스 화를 하여 접근하였는데 

함수 안에서 인스턴스 화를 self를 사용하여 클래스 안의 있는 함수의 메서드를 사용할 수 있습니다.

예를 들면

class A: 
    def say_a(self):      
        print("a")
    def say_b(self):
    	self.say_a()
    	
a = A()  # 인스턴스화(객체)
a.say_a()
a.say_b()

say_b()가 self.say_a()를 함으로 클래스 A에 있는 say_a()에 있는 메서드(기능)를 호출하는 것입니다.

 

 

틀린 것이 있다면 댓글에 남겨주세요!!!

반응형

댓글