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