제 8 장 Class
페이지 정보
작성자 관리자 댓글 0건 조회 4,034회 작성일 20-07-17 18:27본문
프로그래머들이 가장 많이 사용하는 프로그래밍 언어 중 하나인 C 언어에는 클래스가 없다.
이 말은 굳이 클래스가 없어도 프로그램을 충분히 만들 수 있다는 뜻이다.
파이썬으로 잘 만든 프로그램을 살펴보아도 클래스를 사용하지 않고 작성한 것들이 상당히 많다.
클래스는 지금까지 공부한 함수나 자료형처럼 프로그램 작성을 위해 꼭 필요한 요소는 아니다.
하지만 프로그램을 작성할 때 클래스를 적재적소에 사용하면 프로그래머가 얻을 수 있는 이익은 상당하다.
예제를 통해 한번 생각해 보자.
계산기에 숫자 3을 입력하고 + 기호를 입력한 후 4를 입력하면 결괏값으로 7을 보여 준다.
다시 한 번 + 기호를 입력한 후 3을 입력하면 기존 결괏값 7에 3을 더해 10을 보여 준다.
즉 계산기는 이전에 계산한 결괏값을 항상 메모리 어딘가에 저장하고 있어야 한다.
이런 내용을 우리가 앞에서 익힌 함수를 이용해 구현해 보자.
계산기의 "더하기" 기능을 구현한 파이썬 코드는 다음과 같다.
result = 0
def add(num):
global result
result += num
return result
print(add(3))
print(add(4))
add 함수는 매개변수 num에 받은 값을 이전에 계산한 결괏값에 더한 후 돌려주는 함수이다.
이전에 계산한 결괏값을 유지하기 위해서 result 전역 변수(global)를 사용했다.
프로그램을 실행하면 예상한 대로 다음과 같은 결괏값이 출력된다.
그런데 만일 한 프로그램에서 2대의 계산기가 필요한 상황이 발생하면 어떻게 해야 할까?
각 계산기는 각각의 결괏값을 유지해야 하기 때문에 위와 같이 add 함수 하나만으로는 결괏값을 따로 유지할 수 없다.
이런 상황을 해결하려면 다음과 같이 함수를 각각 따로 만들어야 한다.
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))
관련링크
- https://wikidocs.net/28 4906회 연결
댓글목록
등록된 댓글이 없습니다.