본문 바로가기
개발/파이썬

파이썬 클래스 - python class

by 티포스터 2021. 6. 12.
728x90

파이썬 클래스란 무엇이고 왜 사용할까?

 


클래스, 네이버 어학 사전에 아래와 같이 설명되어 있다.

객체 지향 프로그래밍에서, 데이터와 그 조작 절차인 메소드를 정리한 객체의 추형을 정의한 것.

이를 통하여 동종의 객체를 정리하여 다룰 수 있게 된다.

좀 더 쉽게 알아보자

RPG 게임을 할 때 우리는 캐릭터를 생성한다.
이 캐릭터는 각각 하나뿐인 객체이다.
하지만, 이 캐릭터가 걷고 싸우고 스킬을 사용하는 것은(직업마다 다르겠지만)

내 캐릭터만 가능한 것이 아니라 공통된 동작이다.
위 클래스 정의를 다시 보면, 캐릭터(객체)의 데이터와 조작 절차를 정리한 추형이 바로 클래스이다.

아래는 클래스의 사용 예.

 

Class Character:
	def __init__(self, name, job):
		self.name = name
		self.job = job
	def move(self):
		..

user1 = Character('으아아아', '전사')
user2 = Character('르르르으', '법사')


'이를 통하여 동종의 객체를 정리하여 다룰 수 있게 된다'
이 말을 위 예로 보면 Character라는 class를 이용해서 객체를 만들어 다룰 수 있게 된다.

그렇다면 클래스를 사용하는 이유는 뭘까?
객체지향 프로그래밍에서 결국 객체를 정의하고 다루는게 중요한데, 클래스가 이를 해주는 것처럼 보인다.
즉, 클래스는 동종의 객체를 찍어내는 틀이라고 볼 수 있다.
프로그램에서 책 관리가 필요하면 책이라는 class를 만들고 멤버변수와 멤버함수(method)를 정의해두고 객체를 만들면 된다. (책 제목과 같이 멤버변수들을 다르게 해서)

그럼 이제 실제 class를 정의하고 사용해보자.

 

class book:
	def __init__(self, title, author, price):
		self.title = title
		self.author = author
		self.price = price
	def discount(self, state=0):
    	...
	def print_info(self):
    	...

book_1 = book()


위 book클래스를 예로 class의 멤버변수, 멤버함수(method), self에 대해 알아보자
class 내에서 사용하는 변수를 멤버변수, 함수는 method(멤버함수) 라고 한다.
self는 class자기 자신을 뜻한다.

book 클래스의 print_info() 함수를 사용하려면 어떻게 할까?
book 객체인 book_1을 이용해서 호출할 수 있다.
book_1.print_info()
그렇다면 book class 내부에서 호출을 하려면 어떻게 할까? 
self.print_info()

self를 이용해 호출할 수 있다.

아래는 Book class를 좀 더 구현한 내용이다.

class Book:
    def __init__(self, title, author, price):
        self.title = title
        self.author = author
        self.price = price

    def discount(self, state=0):
        if state == 1:
            self.price = int(self.price * 0.9)

    def print_info(self):
        print("===== 책 정보 =====")
        print("제목: " + self.title)
        print("작가: " + self.author)
        print("가격: %s" % (str(self.price)))
        print()


book_1 = Book("파이썬", "홍길동", 25000)
book_1.print_info()
book_1.discount(1)
book_1.print_info()

결과화면
===== 책 정보 =====
제목: 파이썬
작가: 홍길동
가격: 25000

===== 책 정보 =====
제목: 파이썬
작가: 홍길동
가격: 22500
728x90