더북(TheBook)

Note ≡ | 클래스와 함수

함수(function)란 하나의 특정 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드입니다. 함수의 호출은 특정 작업만 수행할 뿐 그 결괏값을 계속 사용하기 위해서는 반드시 어딘가에 따로 그 값을 저장해야만 합니다. 즉, 함수를 포함한 프로그램 코드의 일부를 재사용하기 위해서는 해당 함수뿐만 아니라 데이터가 저장되는 변수까지도 한꺼번에 관리해야 합니다.

이처럼 함수뿐만 아니라 관련된 변수까지도 한꺼번에 묶어서 관리하고 재사용할 수 있게 해 주는 것이 클래스(class)입니다.

클래스와 함수의 차이를 코드로 살펴보겠습니다. 먼저 함수에 대한 예시입니다.

def add(num1, num2): ------ 함수 정의(num1, num2를 받아서 더해 주는 함수)
    result = num1 + num2
    return result

print(add(1, 2))
print(add(2, 3))

코드를 실행하면 다음과 같이 출력됩니다.

3
5

다음은 클래스에 대한 코드입니다.

class Calc:
    def __init__(self): ------ 객체를 생성할 때 호출하면 실행되는 초기화 함수
        self.result = 0

    def add(self, num1, num2):
        self.result = num1 + num2
        return self.result

obj1 = Calc()
obj2 = Calc()

print(obj1.add(1, 2))
print(obj1.add(2, 3))
print('--------------------')
print(obj2.add(2, 2))
print(obj2.add(2, 3))

이 코드를 실행하면 다음과 같이 출력됩니다.

3
5
--------------------
4
5

결과로 볼 수 있듯이 두 개의 객체는 독립적으로 연산됩니다. 개별적 함수로 구현했다면 복잡했을 코드가 클래스 사용으로 간결해졌습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.