[Python] 클래스 개념 정리 (self, init, 객체)

2026. 5. 4. 10:00·Python

1. 클래스란?

  • 클래스는 한마디로 설계도라고 할 수 있으며, 관련 있는 변수(데이터)와 함수(기능)를 하나로 묶어 관리하기 위한 구조다.
  • 즉 클래스는 하나의 프로그램 단위라고 볼 수 있다.
class 클래스이름:
    def __init__(self):
        # 초기값 설정 (객체 생성 시 자동 실행)

    def 함수(self):
        # 기능 정의

 

2. 객체란?

  • 객체는 클래스(설계도)를 기반으로 만들어진 실제 인스턴스다.
person1=Person()

 

👉 위 코드는 “Person 설계도를 바탕으로 person1이라는 객체를 만든다”는 의미다.

  • 객체 vs 변수 
    객체 실제 데이터 (값 + 상태) 으로, 여러 데이터를 가진 구조
    변수 객체를 가리키는 이름
    • 즉 위 코드에서 Person() → 객체 생성, person1 → 그 객체를 가리키는 변수 로 이해할 수 있다.

 

3. __init__ (초기화 메서드)

  • __init__은 객체가 생성될 때 자동으로 실행되는 함수다.
classPerson:
def__init__(self):
print("사람 객체가 만들어졌습니다")

person1=Person()

 

👉 실행 결과 : ‘사람 객체가 만들어졌습니다’

  • __init__을 사용하는 이유
    1. 객체 생성 시 필요한 값을 반드시 설정하기 위해
    2. 변수 정의를 한 곳에 모아 코드 일관성을 유지하기 위해
    3. 객체마다 다른 값을 안전하게 저장하기 위해
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p1 = Person("땡땡", 25)
p2 = Person("띵띵", 30)

 

4. self란?

  • self는 현재 생성된 객체 자기 자신을 의미한다.
class Person:
    def __init__(self):
        self.name = "땡땡"

person1 = Person()

 

👉 여기서 self는 person1을 가리킨다고 보면 된다.

  • self.name을 사용하는 이유
    • name → 함수 안에서만 사용 가능
    • self.name → 객체 전체에서 사용 가능
name = "땡땡"        # ❌ 지역 변수
self.name = "땡땡"   # ⭕ 객체 변수

 

👉 즉, 객체 안에 값을 저장하려면 반드시 self를 써야 한다

 

5. 매서드란?

  • 클래스 안에 정의된 함수를 메서드라고 한다.
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def introduce(self):
        print(f"안녕하세요, 저는 {self.name}입니다.")
        
## 사용방법
person1 = Person("땡땡", 25)
person1.introduce()

 

🔥요약정리

  1. 클래스 = 설계도
  2. 객체 = 실제 데이터
  3. 변수 = 객체를 가리키는 이름
  4. self = 현재 객체 자기 자신
  5. init = 객체 생성 시 자동 실행되는 초기화 함수
  6. 메서드 = 클래스 안의 함수
저작자표시 (새창열림)

'Python' 카테고리의 다른 글

[Python] 문자열 검색 find() 함수  (0) 2023.07.05
[Python] print() 옵션 sep, end, Escape Code(이스케이프 코드)  (0) 2023.07.03
[Python] dictionary get() 메소드  (0) 2023.03.15
[Python] collections 모듈 Counter  (0) 2023.03.15
[Python] lambda함수  (0) 2023.02.01
'Python' 카테고리의 다른 글
  • [Python] 문자열 검색 find() 함수
  • [Python] print() 옵션 sep, end, Escape Code(이스케이프 코드)
  • [Python] dictionary get() 메소드
  • [Python] collections 모듈 Counter
ღ유닝이ღ
ღ유닝이ღ
🗃️이모저모 공부기록함🗃️
  • ღ유닝이ღ
    ღ yuni_world ღ
    ღ유닝이ღ
  • 전체
    오늘
    어제
    • 분류 전체보기 (102)
      • Python (8)
      • JAVA (0)
      • 알고리즘 (41)
        • 알고리즘 개념(이코테) (8)
        • 백준 (20)
        • 프로그래머스 (13)
      • SQL (44)
        • 프로그래머스 (39)
        • Tip (5)
      • Database (2)
      • AI (1)
      • 일상(자격증,어학 등) (6)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
ღ유닝이ღ
[Python] 클래스 개념 정리 (self, init, 객체)
상단으로

티스토리툴바