파이썬에서 자주 등장하는 클래스, 객체, 속성, 메서드, 생성자, 인스턴스라는 용어는 처음 보면 헷갈릴 수 있다.
하지만 하나씩 천천히 살펴보면 금방 이해할 수 있다.
1. 클래스(Class)란?
클래스는 설계도다.
예를 들어, 로봇을 만들려면 먼저 로봇의 설계도가 필요하다.
이 설계도에는 로봇의 특징과 기능이 담겨 있다. 파이썬에서는 이 설계도를 클래스라고 한다.
class Robot:
name = "Robo" # 이름 -> 특징(속성)
def greet(self): # 인사하기 -> 행동(메서드)
print(f"Hello, my name is {self.name}!")
2. 객체(Object)란?
객체는 클래스를 사용해서 만든 물건이다.
로봇 설계도로 실제 로봇을 만든다고 생각하면, 그 로봇 하나하나가 바로 객체다.
# 클래스를 사용해 객체 만들기
robot1 = Robot()
robot2 = Robot()
# robot1과 robot2는 객체다.
robot1.greet() # Hello, my name is Robo!
robot2.greet() # Hello, my name is Robo!
3. 속성(Attribute)이란?
속성은 객체가 가진 특징이다.
로봇의 이름, 색깔, 크기 같은 것들이 속성에 해당한다. 객체마다 속성의 값은 다를 수 있다.
robot1.name = "Alpha" # 속성 값 변경
robot2.name = "Beta"
robot1.greet() # Hello, my name is Alpha!
robot2.greet() # Hello, my name is Beta!
4. 메서드(Method)란?
메서드는 객체가 할 수 있는 행동이다.
로봇이 걷기, 춤추기, 말하기 같은 행동을 한다고 생각하면 된다. 메서드는 클래스 안에 정의된 함수다.
class Robot:
def dance(self):
print("I'm dancing!")
robot = Robot()
robot.dance() # I'm dancing!
5. 생성자(Constructor)란?
생성자는 객체를 만들 때 처음에 딱 한 번 실행되는 특별한 메서드다.
새로운 객체를 만들자마자 초기 설정을 하고 싶을 때 사용한다.
class Robot:
def __init__(self, name, color):
self.name = name
self.color = color
robot = Robot("Gamma", "Red") # 생성자로 초기 설정
print(robot.name) # Gamma
print(robot.color) # Red
6. 인스턴스(Instance)란?
인스턴스는 클래스에서 만들어진 객체를 의미한다.
즉, 객체와 비슷하지만, "이 객체가 어떤 클래스에서 만들어졌는지"를 강조할 때 인스턴스라는 단어를 사용한다.
예를 들어, 위에서 만든 robot은 Robot 클래스의 인스턴스다.
# robot 객체가 Robot 클래스에서 만들어졌음을 확인
print(isinstance(robot, Robot)) # True
객체와 인스턴스의 차이 쉽게 기억하기
- 객체: 설계도로 만든 물건
- 인스턴스: 이 물건이 "어떤 설계도"로 만들어졌는지 알려주는 표현
예시)
- 로봇 설계도로 만든 빨간 로봇은 "객체".
- 그런데 이 빨간 로봇은 "로봇 설계도로 만든 거야!"라고 강조하고 싶다면, "로봇 클래스의 인스턴스"라고 부름
💡 모든 인스턴스는 객체지만, 모든 객체가 꼭 인스턴스라고 부르진 않는다!
왜냐하면, "이건 클래스에서 만들어졌어!"라는 맥락이 필요할 때만 인스턴스라는 단어를 쓰기때문.
728x90
'IT > Python' 카테고리의 다른 글
[파이썬] 람다 함수(Lambda) 쉽게 이해하기 (0) | 2025.01.14 |
---|---|
[파이썬] 클로저(Closure) 쉽게 이해하기 (0) | 2025.01.12 |
[파이썬] 이터레이터 이터러블 차이 쉽게 이해하기 (0) | 2025.01.11 |
[장고] SSL 인증서 구매, runsslserver로 적용 (0) | 2022.05.04 |
[DSAC M1] DataFrame, Series 정리 (0) | 2021.08.19 |