본문으로 건너뛰기

객체 사이에서 값이 공유되는 클래스 변수

객체 사이에서 값이 공유되는 클래스 변수

클래스 변수(Class Variable)는 클래스에 속한 변수로, 클래스에 의해 생성된 모든 객체 사이에서 값이 공유됩니다.

클래스 변수는 클래스 정의 내에서 선언되며, 클래스 이름을 통해 접근할 수 있습니다.


클래스 변수 사용 예시

클래스 변수 사용 예시
class Employee:
raise_amount = 1.04 # 클래스 변수

def __init__(self, name, salary):
self.name = name
self.salary = salary

def apply_raise(self):
self.salary = int(self.salary * Employee.raise_amount)

# 클래스 변수 사용 예시
emp1 = Employee("홍길동", 50000)

emp2 = Employee("박철수", 60000)

print(Employee.raise_amount) # 1.04

print(emp1.raise_amount) # 1.04

print(emp2.raise_amount) # 1.04

Employee.raise_amount = 1.05 # 클래스 변수 변경

print(emp1.raise_amount) # 1.05 (클래스 변수가 변경되면 모든 인스턴스에 반영됨)

이 예제에서 raise_amountEmployee 클래스의 모든 인스턴스에 영향을 미치는 클래스 변수입니다. 클래스 변수의 값이 변경되면, 모든 인스턴스에서 이 변경 사항이 반영됩니다.


클래스 변수의 특징

  • 공유: 클래스 변수는 클래스의 모든 인스턴스 간에 공유됩니다.

  • 메모리 효율: 클래스 변수는 각 객체마다 별도로 저장되지 않아 메모리를 효율적으로 사용합니다.

  • 클래스에서 관리: 클래스 변수는 클래스에서 관리되므로 인스턴스를 생성하지 않아도 접근할 수 있습니다.