Class - 1

김상우·2022년 3월 17일
0

Python

목록 보기
8/14
post-thumbnail

완전 기초부터 시작하는 파이썬

예제 - 계산기 구현

class를 이해하기 위해 예제부터 살펴보았다.

# 계산기 만들기 1
result = 0
def add(num):
    global result
    result += num
    return result

print(add(3))
print(add(4))

3
7

result를 0으로 초기화 후 def로 add함수에 result 전역 변수(global)를 사용한 결과이다. 따라서 print(add(num))으로 결과를 출력하고 result에 값을 누적하여 저장하여 출력한다.

# 계산기 2개 만들기

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

계산기 2개를 표현하기 위해 result를 2개로 지정하고 함수로 두개로 구성하는 방식으로 첫 번째 코드처럼 실행하고 출력하는 방식이다. 이렇게 표현해야 result1의 값과 result2의 값이 서로 영향을 끼치지 않는다.
하지만 점점 계산기가 점점 많아진다는 가정이라면 위에서 표현한 add를 add1, add2, add3, ...처럼 계속해서 코드를 늘릴수 밖에 없다.
이를 해결하기 위해 class를 사용하는 방법이 있다.

# class를 사용하여 계산기 2개 만들기

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))

class를 사용해 + 연산을 수행하는 result를 지정한다. 위에 있는 def로만 구성한 코드로 여러개의 계산기를 구현하는 경우 def문을 계속해서 작성해야 하지만 이렇게 class를 사용하면 'cal1 = calculator()' 문장만 추가하면 된다.

3
7
3
10

위 코드에서 다른 연산을 추가하기 위해서는 class안에 기능함수를 추가하기만 하면된다.

# 뺄셈 기능

def sub(self, num):
    self.result -= num
    return self.result

# 곱셈 기능
def mul(self, num):
    self.result *= num
    return self.result

# 나눗셈 기능
def div(self, num):
    self.result /= num
    return self.result

다음 게시물에서 class에 대해 하나하나 다시 뜯어보도록 하겠다.

profile
아침엔 운동하고 밤엔 잠을 잔다.

0개의 댓글