본문 바로가기
IT/파이썬(Python)

파이썬 클래스(Class), 메서드(Method), 속성(Attribute) 정의, 사용법

by 깡타의 컴맹인생 2023. 3. 27.
반응형

파이썬 클래스

파이썬은 객체 지향 프로그래밍 언어라는 이야기를 많이 들어보았을 것이다. 파이썬은 모든 것이 객체의 상호작용으로 이루어진다고 할 수 있다. 그 객체를 표현하기 위한 문법으로 클래스가 존재한다. 이번 시간에는 클래스에 대해 알아본다.

목차
1. 클래스(Class), 속성(Attribute), 메서드(Method)의 정의
2. 클래스 만들기
3. 클래스 메서드 만들기
4. 클래스 속성 만들기

1. 클래스(Class), 속성(Attribute), 메서드(Method)의 정의

클래스는 어떤 객체를 표현하기 위한 문법이다. 객체는 특정한 개념이나 모양으로 존재하는 것을 뜻한다. 예를 들어 자동차 객체(Object)를 만든다고 하자. 자동차는 모델명, 배기량, 가격, 색상 등과 같은 데이터를 가지고 있고 앞으로 움직일 수 있으며 뒤로 움직일 수 있다. 모델명, 배기량, 가격, 색상 등과 같은 데이터는 클래스의 속성이라고 부른다. 그리고 자동차가 움직이는 기능은 클래스의 메서드라고 부른다.


2. 클래스 만들기

class 원하는 클래스명:
1
2
3
4
5
6
class Car: # Person 클래스 생성
    pass # 아무런 속성과 메서드를 지니지 않은 경우에는 pass를 입력
 
audi = Car() # jack을 Person 클래스의 인스턴스(객체)로 선언
 
print(type(audi)) # jack의 타입을 출력
cs
<class '__main__.Person'>

 

클래스를 만드는 방법은 간단하다. class를 적어주고 본인이 원하는 클래스명을 적어주면 된다. 위 코드는 Car라는 클래스를 만들고 a라는 변수를 Car 클래스의 인스턴스(Instance)로 만들었다. 인스턴스는 어떤 클래스의 대상 객체를 뜻한다.


3. 클래스 메서드 만들기

class 원하는 클래스명:
    def 원하는 메서드명(self):
        동작
1
2
3
4
5
6
7
class Car: # Person 클래스 생성
    def move_forward(self):
        print('차량이 전진합니다.')
        
audi = Car() # jack을 Person 클래스의 인스턴스(객체)로 선언
 
audi.move_forward()
cs
차량이 전진합니다.
 
 

메서드는 사실 함수를 만드는 것과 문법이 비슷하다. 다만 매개변수를 입력하는 곳에 인스턴스의 주소가 입력될 수 있도록 해줘야 한다. 보통 self라는 단어를 써준다. 위 코드는 move_forward라는 메서드를 만든다. 해당 메서드는 "차량이 전진합니다."라는 문구를 출력한다.


4. 클래스 속성 만들기

class 원하는 클래스명:
    def __init__(self, 매개변수):
        self.원하는 속성명 = 매개변수
1
2
3
4
5
6
7
class Car: # Person 클래스 생성
    def __init__(self, model_name):
        self.모델명 = model_name
        
audi = Car('A8'# jack을 Person 클래스의 인스턴스(객체)로 선언
 
audi.모델명
cs
'A8'
 

속성을 선언하기 위해서는 __init__ 메서드를 사용한다. 이 메서드는 클래스로 인스턴스를 만들 때 호출되는 특별한 메서드다. 이 메서드 안에 사용자가 원하는 속성이 부여되도록 할 수 있다. 위의 코드는 모델명이라는 속성을 만들어서 사용자로 하여금 해당 인스턴스의 실제 모델명을 속성으로 입력받도록 한 것이다.

인스턴스명.속성

해당 인스턴스의 속성 값을 지정하고 싶을 때는 위의 문법을 따른다. audi라는 인스턴스를 선언할 때 매개변수 값으로 'A8'을 입력해 줬기 때문에 모델명 속성 값으로 A8이 출력되는 것을 확인할 수 있다.

반응형