본문으로 건너뛰기
실습하기

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

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

클래스 변수는 클래스 선언 내부에서 정의되며, 보통 클래스 정의의 최상단에 위치합니다.

생성자 __init__을 활용해 생성된 객체별로 독립적인 값을 갖는 인스턴스 변수와 달리, 클래스 변수는 클래스에 의해 생성된 모든 객체가 공유하는 값을 갖습니다.


클래스 변수 사용 예시

클래스 변수 사용 예시
class MyClass:
# 클래스 변수
class_variable = "공유 변수"

def __init__(self, name):
# 인스턴스 변수
self.name = name

# 클래스 변수에 접근
print(MyClass.class_variable)
# 출력: 공유 변수

# 인스턴스 생성
obj1 = MyClass("객체1")
obj2 = MyClass("객체2")

# 클래스 변수는 모든 인스턴스에서 공유
print(obj1.class_variable)
# 출력: 공유 변수
print(obj2.class_variable)
# 출력: 공유 변수

# 클래스 변수를 수정
MyClass.class_variable = "변경된 값"
print(obj1.class_variable)
# 출력: 변경된 값
print(obj2.class_variable)
# 출력: 변경된 값

# 인스턴스 변수는 개별적으로 유지
print(obj1.name)
# 출력: 객체1
print(obj2.name)
# 출력: 객체2

이 코드에서 class_variableMyClass 클래스에 속한 클래스 변수로, MyClass 클래스에 의해 생성된 모든 객체 사이에서 값이 공유됩니다.

obj1obj2 인스턴스는 각각 name 인스턴스 변수를 가지고 있으며, 이 변수는 객체별로 독립적인 값을 유지합니다.

클래스 변수는 클래스 이름을 통해 접근할 수 있으며, 클래스 변수의 값을 수정하면 모든 인스턴스에 영향을 줍니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!