python

[Python] 인스턴스 변수 vs 클래스 변수

Superkill 2020. 8. 7. 00:34
반응형
Generally speaking, instance variables are for data unique to each instance and class variables are for attributes and methods shared by all instances of the class:
https://docs.python.org/3/tutorial/classes.html#class-and-instance-variables

인스턴스 변수 : 각 인스턴스의 고유한 데이터
클래스 변수 : 모든 클래스 인스턴스에 공유되는 데이터 및 메소드

class Foo:
    classVar = 0

    def __init__(self, classVar, instanceVar):
        self.instanceVar = instanceVar
        Foo.classVar = classVar

    def Hello(self):
        print("class var : {0} instance var : {1}".format(Foo.classVar, self.instanceVar))


print("Foo.classVar : {0}".format(Foo.classVar)) # Foo.classVar : 0
f1 = Foo(1, 11) # Foo.classVar : 1
f2 = Foo(2, 22) # Foo.classVar : 2

f1.Hello()
f2.Hello()

# 출력 결과
# Foo.classVar : 0
# class var : 2 instance var : 11
# class var : 2 instance var : 22