안녕하세요 jay입니다.
지난 시간 self에 이어
링크 : https://classicismist.blogspot.com/2018/09/python-self.html
이번 시간에는 객체 변수와 클래스 변수에 대해 알아보도록 하겠습니다.
객체 변수(Instance variable)
객체 변수는 멤버 변수라고도 합니다.
객체 변수는 객체의 고유한 값을 저장할 수 있는 공간입니다.
객체 변수는 다른 객체들에 의해 영향받지 않고
독립적으로 그 값을 유지합니다.
이번 시간에는 객체 변수와 클래스 변수에 대해 알아보도록 하겠습니다.
객체 변수(Instance variable)
객체 변수는 멤버 변수라고도 합니다.
객체 변수는 객체의 고유한 값을 저장할 수 있는 공간입니다.
객체 변수는 다른 객체들에 의해 영향받지 않고
독립적으로 그 값을 유지합니다.
class Country: def __init__(self,n,p): self.name = n # 인스턴스 변수 self.population = p # 인스턴스 변수 def show(self): print(self.name) print(self.population) a = Country("대한민국",500000000) b = Country("미국", 330000000) # a와 b는 서로 다른 객체이다. 객체 변수는 이에 영향받지 않는다. a.show() # 대한민국 # 500000000 출력 b.show() # 미국 # 330000000 출력
클래스 변수 (class variable)
클래스 변수는 클래스 내에 변수를 선언하여 생성한다.
클래스 변수는 객체 변수와 달리 클래스에 의해 생성된 모든 객체에 공유된다는 특징을
가지고있다. (독립적이지 않다)
class Country:
counting = 0 # 클래스 변수 def __init__(self,name,population): self.name = name # 객체 변수 self.population = population # 객체 변수 Country.counting += 1 # 생성자가 실행될 때마다 클래스 변수 counting이 1씩 증가 def show(self): print(self.name) print(self.population) a = Country("대한민국",50000000) b = Country("미국", 330000000) print(a.name) # 객체 a의 객체 변수 name 출력 = 대한민국 print(b.name) # 객체 b의 객체 변수 name 출력 = 미국 print(a.counting) # 클래스 변수 출력 = 2 print(b.counting) # 클래스 변수 출력 = 2
위의 코드를 보면
a, b라는 객체를 생성했을 때
생성자가 실행되면서 클래스 변수 counting이 1이 각각 증가해서
클래스 변수 counting을 출력하면 2가 된다는 것을 알 수 있다.
댓글
댓글 쓰기