본문 바로가기
Python/Python 문법

Python 클래스 [ class 기초, 생성자, 사용 ]

by lchit 2019. 12. 29.

 

클래스란?

사람 >> 클래스

 

이찬호 >> 사람으로 만들어진 객체

홍길동 >> 사람으로 만들어진 객체

 

이 처럼 큰 공통점을 가지고 

서로 다른 특징이 이 있는 객체를

만들어 낼 수 있는 게 클래스이다.

 

사람이라는 클래스에

여러가지 저장 정보들을 담아놓고 

그 정보들을 토대로 객체를 찍어낼 수 있다.

 

고양잇과에는 호랑이도, 치타도, 고양이도 있다

고양잇과 어디서부터 진화하고 종 이 나누어졌는지

모르지만 고양잇과가 가지고 있는 공통점을 가지고

우리는 고양잇과라고 부른다.

 

고양잇과가 클래스이고

호랑이, 치타, 표범 등이 고양잇과로

만들어진 객체 들인 것이다.

 

즉 클래스를 이용하면 

다양한 객체를 만들어 내어

활용할 수 있다.

 

또 다른 예로는 붕어빵이다

붕어빵 틀은 클래스이고

붕어빵 틀로 만들어진 붕어빵은 객체이다

붕어빵 틀로 만들었기에 가지고 있는 모양이 같지만

슈크림 붕어빵을 만들 수도 있고

단팥 붕어빵을 만들 수도있으다.

 

 

 

 

 

 

 

1. 클래스 생성 방법

class 클래스명:

Human 클래스를 만들었다

 

 

 

이 Human 클래스는 

이름, 나이, 성별, 직업을 저장하게끔

만들어 보자 

 

Human이라는 클래스는

이제 4가지의 데이터를 저장할 변수들을

가지고 있다.

이 변수들은 전역 변수라 하고

이 클래스에 내포된 함수들에서 공유될 수 있는

자원이다.

 

이 틀로 객체(개개인)를 '만들 때'

여기에 값을 전달해 주어야 할 것이다.

그럴 때 생성자를 이용한다.

 

 

2. 생성자 만들기

생성자란 이 클래스를 이용하여 객체를 '만들 때'

행해질 작업을 담당하는 함수이다.

 

먼저 def로 함수를 선언하고

그 뒤에 __init__이라고 해주었다

그리고 괄호 () 안에 self와 함께

name, age, job이라는 전달받을

매개변수를 주었다

 

그리고 함수 실행 작업으로는

self.name = name
self.age = age
self.gender = gender
self.job = job

이 있는데 이는 매개변수로 전달받은

인자 값들을 현재 클래스의 전역 변수에

저장해주는 역할을 한다.

자바의 this 키워드와 유사하다.

 

 

3. 클래스 내포 함수 만들기

그리고 이 저장한 정보들을 토대로

출력해주는 함수도 만들어보자

 

이 역시 전역 변수에 접근할 것으로 self 키워드를 붙여주었다.

그리고 각각 서식에 self. 변수로 전역 변수 값들을 가져오고 있다.

 

이렇게 해서 이름 나이 성별 직업을 토대로

서로 다른 객체를 만드는 클래스를 생성했고

그 정보들을 출력하는 메서드도 내포되어 있다.

그럼 만들 클래스를 생성하고 사용해보자

 

4. 만든 클래스를 이용하여 객체 만들기

생성 방법 

객체명 = 클래스명()

으로 생성해주면 된다.

하지만 이렇게 하면 오류가 날것이다

우리가 생성자 __init__을 이용하여

생성자 함수를 만들 때 매개변수 4가지를

지정했기 때문이다.

 

고로 생성 시에 인자 값을 전달해주어야 한다.

자 하나의 클래스를 만든 덕분에

여러 가지 다른 정보들을 쉽게 관리할 수 있다.

클래스에 정보 출력 메서드도 만들었으니 사용해보자

 

 

5. 객체별로 함수 사용해보기

사용방법

객체명. 함수명()

 

 

클래스가 없었다면

우리는 lee, kim, hong 등의 정보를

서로 다른 변수들을 만들어서 하나하나 

작업해주었을 것이다.

 

객체 지향 언어에서는 클래스 하나만을

생성하여 여러 객체들을 만들어 내는 게

가능하다.