클래스를 사용하는 이유?
- 계산기를 떠올리자.
- 3+4+3 = 7 + 3 =10 인데 7의 결과값을 항상 저장하고 있어야한다.
result = 0
def add(num):
global result
result += num
return result
print(add(3))
print(add(4))
>> 3
>> 7
두 개의 계산 값을 가져야 할 때는 두개의 계산기가 필요하다
result1 = 0
result2 = 0
def add1(num):
global result1
result1 += num
return result1
def add2(num):
global result2
result2 += num
return result2
print(add1(3))
print(add1(4))
print(add2(3))
print(add2(7))
>>3
>>7
>>3
>>10
계산기가 이렇게 한 번이 아니라 무수히 많이 사용한다면? 어떻게 해야할까?
이때 클래스를 사용해준다.
class Calculator:
def __init__(self):
self.result = 0
def add(self, num):
self.result += num
return self.result
# 객체
cal1 = Calculator()
cal2 = Calculator()
print(cal1.add(3))
print(cal1.add(4))
print(cal2.add(3))
print(cal2.add(7))
>> 3
>> 7
>> 3
>> 10
한 줄로 설명하면 클래스를 만들어서 객체를 필요한만큼 찍어내서 편하게 계산한다.
면접시 답변 : 함수만을 사용하면 값의 저장 개수만큼 함수를 사용해줘야 하는데 클래스를 사용하면 객체만 늘려서 사용하면 되서 편하다.
집 ⇒ 클래스
가족 ⇒ 객체
객체와 인스턴스
a = Cookie()
a는 객체이다.
a는 Cookie의 인스턴스이다.
외우자.
Backend class
크게 속성과 메소드로 나뉜다.
속성 : 인스턴스를 초기화해줄때 ( 사용할 변수지정)
메소드 : 실행시킬 함수(무엇을 시킬지)
인스턴스 생성 : introduce에 속성 값을 지정해서
# 클래스 선언 class Member: # 속성 생성 def __init__(self, name, age, address): self.name = name self.age = age self.address = address # 메소드 생성 def info(self): print('저의 이름은 {0}이고, 나이는 {1}, 사는곳은 {2} 입니다'.format(self.name, self.age, self.address)) # Member의 introduce 인스턴스 생성 introduce = Member('nirsa', 80, '인천 광역시') # introduce 인스턴스의 info 메소드 호출 introduce.info() 출처: https://nirsa.tistory.com/110 [Nirsa:티스토리]