[Python] Class의 정확한 이해와 사용법

2023. 9. 13. 17:19DATA PROGRAMMING/PYTHON

Class는 객체지향프로그래밍을 위한 파이썬만의 가장 강력한 기능중 하나이다. Class가 무엇이고 이를 왜 사용해야 하는지 그리고 그 사용법에 대해서도 자세하게 학습해 보려고 한다.

 

 

Class란?

 

>>> class BusinessCard:
        pass

>>>

클래스는 마치 함수를 정의하듯이 class BusinessCard의 형식으로 만들어 낼 수 있다. 이때 class는 함수와 변수를 하나로 묶어 문자형, 숫자형 등과 같은 클래스로 만들어 내는 역할을 한다. 이때 클래스를 정의한다는 것은 새로운 데이터 타입을 만들어내는 것과 같기에, 인스턴스를 정의해 줘야 한다.

 

METHOD 정의

위에 정의한 클래스는 내부가 비어있기에 별다른 역할을 할수가 없다. 그래서 클래스안에 함수를 정의해 줘야하는데, 이때 클래스 안의 함수를 메서드라고 한다.

 

>>> class BusinessCard:
        def set_info(self, name, email, addr):
                self.name = name
                self.email = email
                self.addr = addr

>>>

위 코드에서 메서드 내부를 살펴보면 메서드 인자로 전달된 name, email, addr 값을 self.name, self. email, self.addr이라는 변수에 대입하는 것을 볼 수 있다. 

 

member1 = BusinessCard()
member1.set_info("Yuna Kim", "yunakim@naver.com", "Seoul")

이렇게 손쉽게 member1에 대한 정보를 찾아올수 있다.

 

위 클래스를 정의하는 과정에서 set_info 메서드는 인스턴스를 정의해준다. 파이썬의 클래스에서는 이 역할을 담당하는 메서드가 있는데 이를 생성자라고 한다. 즉, 위의 set_info 메서드를 바꿔주기만 하면 된다.

 

>>> class BusinessCard:
        def __init__(self, name, email, addr):
                self.name = name
                self.email = email
                self.addr = addr

>>>

 

 

CLASS 연습문제

 

 

 

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        
    def setx(self, x):
        self.x = x
    
    def sety(self, y):
        self.y = y
        
    def move(self, dx, dy):
        self.x = self.x + dx
        self.y = self.y + dy