# 기존의 만든 FourCal 클래스 classFourCal: defsetdata(self, first, second): self.first = first self.second = second defadd(self): result = self.first + self.second return result defmul(self): result = self.first * self.second return result defsub(self): result = self.first - self.second return result defdiv(self): result = self.first / self.second return result
classFourCal: # 생성자 부분 def__init__(self, first, second): self.first = first self.second = second defsetdata(self, first, second): self.first = first self.second = second defadd(self): result = self.first + self.second return result defmul(self): result = self.first * self.second return result defsub(self): result = self.first - self.second return result defdiv(self): result = self.first / self.second return result
init 매서드는 setdata메서드와 이름만 다르고 모든 게 동일하다.
객체가 생성되는 시점에 자동으로 호출되는 차이만 있을 뿐이다.
1 2 3 4 5 6
a = FourCal(4, 2) print(a.first) print(a.second) print(a.add()) print(a.div())
4
2
6
2.0
클래스 속성 사용하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14
classPerson: bag = []
defput_bag(self, stuff): self.bag.append(stuff)
james = Person() james.put_bag('book')
maria = Person() maria.put_bag('열쇠')
print(james.bag) print(maria.bag)
['book', '열쇠']
['book', '열쇠']
제임스 가방에는 책을 마리아 가방에는 열쇠를 넣었는데 두 가방 모두 두 개의 소품이 드가있다.
클래스 속성은 클래스에 속해 있으며 모든 인스턴스에서 공유한다.
클래스 속성에 접근할 때는 클래스 이름으로 접근하는 것이 더 명확하다.
1 2 3 4 5
classPerson: bag = []
defput_bag(self, stuff): Person.bag.append(stuff) # 클래스 이름으로 클래스 속성에 접근