[Python] Class 알아보기 (1) - 클래스와 클래스/인스턴스 변수

orangesnail·2025년 3월 6일

Python

목록 보기
13/21

Class?

쉽게 설명하자면 파이썬에서의 클래스는 객체를 생성하기 위한 템플릿이다. 이 템플릿을 통해 여러 개의 관련된 변수, 함수 등을 하나의 구조로 묶어서 관리할 수 있다.

클래스를 사용하면 같은 구조의 객체를 여러 개 만들 수 있게 되면서 코드 재사용이 쉬워지며, 더 깔끔하고 체계적인 코드를 작성할 수 있다.

기본 문법

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() 메서드를 통해 이름과 나이를 출력한다.

실행하면 아래와 같이 출력된다.

클래스 변수 vs 인스턴스 변수

클래스 변수 - 모든 객체가 공유하는 변수이다.
인스턴스 변수 - 각 객체마다(각 인스턴스마다) 개별적으로 가지는 변수이다.

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"라는 값을 가진다. 반면 인스턴스 변수nameage인스턴스마다 다른 값을 가진다.

profile
초보입니다. 피드백 환영합니다 😗

0개의 댓글