카테고리 없음

파이썬 Class

math_tbro 2022. 6. 7. 18:03

클래스를 사용하는 이유?

  • 계산기를 떠올리자.
  • 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:티스토리]