본문 바로가기
Programming/Python

Python Class - 001

by The Programmer 2026. 8. 30.

1. Introduction

 

이번 시간에는 Python 클래스에 대해서 알아보겠습니다. 가장 기본적인 내용들만 정리합니다.

(아직 정리 중인 글입니다.. )

 

 

2. Code

 

# 1) 클래스를 만들 때는 이렇게. 보통은 대문자로 시작함. 관례.

class Person:

    """클래스 내용은 여기에"""

    # print("여기서 Person은 클래스.")

 

 

# 2) 클래스를 이용해서 클래스형 변수를 만들 때는 이렇게.

james = Person()

 

 

# 3) 클래스 내부에 변수를 추가할 때

james.name = "Julius Caesar"
james.HealthPower = 5000

 

 

# 4) 클래스를 초기화 할 때는 이렇게. 초기화 함수를 사용해야 한다.

def __init__:

 

 

3. Result

 

 

 

4. Notes

 

1) 모양, 생김새 :

class Person:
    """클래스 내용은 여기에"""
    # print("여기서 Person은 클래스.")
    

2) 의미

클래스는 일종의 사용자 정의 자료형에 가깝다.

james = Person()

# 여기서 클래스 변수 james는 Person 클래스 자료형.

 

일반 변수는 보통 숫자나 문자열을 그 값으로 가진다. 변수 자체가 함수를 가지지는 않는다.

즉, 변수와 함수는 따로 따로 존재한다.

 

변수를 일종의 데이터로 가정하고 함수를 이 데이터와 관련된 동작이라고 생각할 수 있다.

클래스는 데이터와  동작을 하나로 묶어서 한 덩어리 개념 단위로 다룬다.

즉, 클래스는 데이터와 동작을 하나로 묶은 것이다.

클래스는 변수, 함수를 내포할 수 있다.
- 점으로 연결해서 표현함.

james.name = "Julius Caesar"
james.HealthPower = 5000

클래스 안에 포함된 변수나 함수를 클래스의 구성요소라고 한다.

 

 

3) 클래스 구성요소

클래스에 포함된 변수는 멤버 변수, 속성(property)
또는 원소(element)라고 한다.

 

클래스에 포함된 함수는 멤버 함수, 메서드/메쏘드/메써드(Method)라고 한다.

 

위 사례로 보면, name과 HealthPower가 멤버 변수, 속성, 또는 원소임.


4) 클래스 초기화

클래스는 초기화를 해야 한다.

다소 이상하게 생긴 함수 이름을 사용해서 초기화를 한다.

이 이름은 지정된 이름이므로 변경할 수 없다.

def __init__():
    # 내용은 여기에. 앞 뒤로 밑줄 문자 2개 연속.
    # 따라서 밑줄 문자가 함수 이름에 전부 4개.
    # 특수 함수이므로 이름 변경 불가.

    # 뒤에 괄호가 붙어 있다.

 

 

5) self 키워드의 사용

 

클래스는 초기화를 할 때, 클래스 자기 자신을 초기화 하는 것이기 때문에 '자기 자신'을 뜻하는 self 키워드를 사용한다. 따라서 초기화 함수의 모양은 다음과 같이 된다.

 

def __init__(self):

 

이때, 괄호 안에 다른 내용이 더 올 수 있지만, self 키워드는 첫번째 자리를 차지해야 한다.

 


6) 인스턴스의 의미

 

클래스를 이용해서 클래스형 변수를 만들 때, 만들어진 클래스형 변수를 인스턴스라고 한다. 하나의 프로그램에 많은 클래스가 사용될 수 있고 이에 따라 많은 클래스형 변수들이 만들어질 수 있다. 즉, 수 많은 인스턴스들이 존재할 수 있다.

 

클래스를 하나의 설계도라고 가정한다면, 인스턴스는 그 설계도를 기반으로 '실제로 존재하는', '구체적으로 현실화한' 것을 뜻한다. 붕어빵틀과 실제 붕어빵, 버스 설계도와 실제 버스. 인스턴스는 '실물로 존재하도록 한' 것을 뜻한다.

 

붕어빵틀은 붕어빵 설계도에 해당한다. 이 설계도에는 붕어빵을 구성하는 실제 단팥 크림이 포함되지 않는다. 설계도는 특정 위치에 단팥 크림이 들어가야 한다는 것만 알려준다. 단팥 크림은 붕어빵 인스턴스에 들어간다. 설계도는 값을 가지지 않고 값이 필요하다는 것만 알려준다. 실제 값은 인스턴스가 가진다.

 

인스턴스는 다음처럼 만든다.

 

james = Person()

 

# Person()은 클래스, james는 이 클래스로 만든 인스턴스.

# 이때, Person()을 클래스 생성자라고 할 수도 있다. 생성자는 인스턴스를 만든다는 의미로 사용되었다.

# 보통은 클래스명과 클래스의 생성자명은 동일하다.


7) 객체의 의미

 

유사한 의미로 객체가 있다. 객체는 인스턴스를 뜻하지만, 

 

  • 객체는 클래스에서 생성된 인스턴스와 동의어로 자주 사용되지만, 더 넓은 의미로는 프로그램 내에서 데이터와 함수가 결합된 모든 실체를 의미합니다.
  • 역할: 데이터(속성)와 기능(메서드)을 포함하는 모든 실체.
  • 특징:
    • Python에서는 모든 것이 객체입니다. (예: 숫자, 문자열, 함수, 클래스 자체도 객체)
    • 클래스에서 생성된 인스턴스도 객체의 한 종류입니다.

 

개념 비교

  개념           정의                                                  역할                                            특징 및 예시
클래스 객체를 만들기 위한 설계도 속성과 메서드 정의 class Car: ...
인스턴스 클래스에서 생성된 구체적인 실체 메모리에 할당된 객체 my_car = Car("Toyota", "Red")
객체 데이터와 기능을 가진 모든 실체 프로그램 내 모든 데이터 단위 숫자, 문자열, 함수, 인스턴스 모두 객체

 

 

객체와 인스턴스 개념은 서로 비슷하지만, 객체가 각각 별도로 존재하는 단위체라는 의미에 중점을 두고 있고,

인스턴스는 클래스라는 설계도상의 상상을 실제로 구체화한 실체라는 의미에 중점을 둔 표현입니다. 문맥에 따라서 각각 약간 구별해서 사용되므로 구별하는 것이 좋겠습니다.

 

(... 계속... )

 

 

■ 응용 연습 과제

1) 랜덤 컬러링

2) 좌우 균형 맞추기

 

 

5. Files

 

Not yet! ^.^;

 

 

6. Ref.

 

 

Happy Programming!

^.^;