[파이썬] 클래스 변수와 인스턴스 변수

클래스 변수와 인스턴스 변수는 파이썬 객체 지향 프로그래밍(OOP)에서 사용되는 중요한 개념입니다. 클래스 변수는 클래스 안에 정의된 변수로, 객체 인스턴스들 간에 공유됩니다. 반면, 인스턴스 변수는 각 객체 인스턴스마다 독립적으로 존재합니다.

클래스 변수

클래스 변수는 클래스 안에 정의된 변수로, 객체 인스턴스들 간에 공유됩니다. 클래스 변수는 클래스 내부의 모든 메소드에서 사용할 수 있습니다.

예를 들어, 클래스 Person에는 클래스 변수 species가 있습니다. 모든 인스턴스는 species라는 공통의 변수를 공유합니다.

class Person:
    species = "Homo Sapiens"

person1 = Person()
person2 = Person()

print(person1.species) # Homo Sapiens
print(person2.species) # Homo Sapiens

인스턴스 변수

인스턴스 변수는 각 객체 인스턴스마다 독립적으로 존재합니다. 인스턴스 변수는 객체 인스턴스마다 다른 값을 가질 수 있습니다.

예를 들어, 클래스 Person에는 인스턴스 변수 name이 있습니다. 두 객체 인스턴스는 각각 다른 name을 가질 수 있습니다.

class Person:
    species = "Homo Sapiens"

person1 = Person()
person2 = Person()

person1.name = "John"
person2.name = "Jane"

print(person1.name) # John
print(person2.name) # Jane

결론

클래스 변수와 인스턴스 변수는 파이썬 객체 지향 프로그래밍에서 중요한 개념입니다. 클래스 변수는 클래스 안에 정의된 변수로, 객체 인스턴스들 간에 공유됩니다. 반면, 인스턴스 변수는 각 객체 인스턴스마다 독립적으로 존재합니다.