쉽게 설명하자면 파이썬에서의 클래스는 객체를 생성하기 위한 템플릿이다. 이 템플릿을 통해 여러 개의 관련된 변수, 함수 등을 하나의 구조로 묶어서 관리할 수 있다.
클래스를 사용하면 같은 구조의 객체를 여러 개 만들 수 있게 되면서 코드 재사용이 쉬워지며, 더 깔끔하고 체계적인 코드를 작성할 수 있다.
class 클래스명:
def __init__(self, 파라미터1, 파라미터2):
self.변수1 = 파라미터1
self.변수2 = 파라미터2
def 메서드명(self)
# 수행할 기능
__init__() 는 생성자로, 객체가 생성될 때 자동으로 실행된다.self 는 객체 자신을 가리키는 키워드다. 이 self를 사용해 클래스 내부에서 속성이나 메서드에 접근할 수 있다.class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print(f"my name is {self.name}. i am {self.age} years old.")
p1 = Person("Bob", 40)
p1.introduce()
Person 클래스를 만들어봤다. 이 클래스는 name, age라는 속성(변수)를 가지며, introduce() 메서드를 통해 이름과 나이를 출력한다.
실행하면 아래와 같이 출력된다.
클래스 변수 - 모든 객체가 공유하는 변수이다.
인스턴스 변수 - 각 객체마다(각 인스턴스마다) 개별적으로 가지는 변수이다.
class Person:
livesOn = "Earth"
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print(f"my name is {self.name}. i am {self.age} years old.")
p1 = Person("Bob", 40)
p2 = Person("Mimi", 80)
print(p1.name)
print(p2.name)
print(p1.livesOn)
print(p2.livesOn)
위 예시 코드에서 클래스 변수인 livesOn은 어떤 객체가 생성되든 공통적으로 "Earth"라는 값을 가진다. 반면 인스턴스 변수인 name과 age는 인스턴스마다 다른 값을 가진다.