파이썬 클래스 사용법 #2



다시 클래스에 대해 이어서 설명 해 보겠다. 


원래 난해하고 쉽지 않은 내용이니 좌절하지 말고 끝까지 보길 바랍니다.


자 다른 예로 설명해 보겠다.


음료 자판기를 예를 들어 설명해 보겠다.


간단하게 돈 넣으면 음료수 2개중 한개를 선택해 음료수가 나오게 하겠다.


==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


total_money = 10

product = '음료1','음료2'

price = 2, 3


in_money = input("돈을 넣어주세요(2~3)")

sel_drink = input("음료를 선택해 주세요(1~2)")


if sel_drink == 1 and in_money >= 2:

    print"%s 나왔습니다."%product[0]

    total_money = total_money + 2

elif sel_drink == 2 and in_money >= 3 :

    print"%s 나왔습니다." % product[1]

    total_money = total_money + 3


print"자판기에 %d원 있습니다."%total_money

==========================================================

결과 :  

돈을 넣어주세요(2~3)3

음료를 선택해 주세요(1~2)1

음료1 나왔습니다.

자판기에 12원 있습니다.

==========================================================


이제 여기서 거스름 돈도 주는 기능을 넣고 싶고 음료수도 더 추가 하고 싶다.


어떻게 되겠는가.. 프로그램 전반적으로 다시 다 수정 해야 된다.


하지만 다음과 같이 위의 기능을 클래스로 만들어 뒀으면


==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


class vend_machine :

    total_money = 10

    in_money = 0

    sel = 0

    product = '음료1', '음료2'

    price = 2, 3


    def input_money(self):

        self.in_money = input('돈을 넣어주세요')


    def get_drink(self):

        sel = input('음료수를 선택해주세요')

        if sel == 1 and self.in_money >= 2:

            print"%s 나왔습니다." % self.product[0]

            self.total_money = self.total_money + 2

        elif sel == 2 and self.in_money >= 3:

            print"%s 나왔습니다." % self.product[1]

            self.total_money = self.total_money + 3

        print"자판기에 %d원 있습니다." % self.total_money



vm = vend_machine()

vm.input_money()

vm.get_drink()

==========================================================

결과 :  

돈을 넣어주세요3

음료수를 선택해주세요1

음료1 나왔습니다.

자판기에 12원 있습니다.

==========================================================


클래스 부분만 수정 하고 


클래스를 사용하는 부분 

   vm = vend_machine()

   vm.input_money()

   vm.get_drink()

)


은 변경 할 필요가 없이 수정이 가능하다. 


다음은 음료수를 추가해 보고 거스름돈도도 나오게 해보자


==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


class vend_machine :

    total_money = 10

    in_money = 0

    sel = 0

    product = '음료1', '음료2', '음료3'

    price = 2,3,4


    def input_money(self):

        self.in_money = input('돈을 넣어주세요')


    def get_drink(self):

        sel = input('음료수를 선택해주세요')

        if sel == 1 and self.in_money >= 2:

            print"%s 나왔습니다." % self.product[0]

            self.total_money = self.total_money + 2

            self.in_money = self.in_money - 2

        elif sel == 2 and self.in_money >= 3:

            print"%s 나왔습니다." % self.product[1]

            self.total_money = self.total_money + 3

            self.in_money = self.in_money - 3

        print"자판기에 %d원 있습니다." % self.total_money

        print"거스름돈 %d원 있습니다." % self.in_money

        self.in_money = 0


vm = vend_machine()

vm.input_money()

vm.get_drink()

==========================================================

결과 :  

돈을 넣어주세요5

음료수를 선택해주세요1

음료1 나왔습니다.

자판기에 12원 있습니다.

거스름돈 3원 있습니다.

==========================================================


클래스만 수정 하였고 클래스를 사용하는 부분은 전혀 수정을 가하지 않았다.


또한 이렇게 클래스를 만들어 두면 다른 프로그램에서 사용 할 수 있다.


이것을 프로그램의 재 사용성이라고 하며 


재 사용성을 높여 프로그램의 생산성, 유지보수성을 향상 시킬수 있다.


 

이전 클래스 설명 가기 ====> click

다음 클래스 설명 가기 ====> click




반응형

'프로그램 > Python' 카테고리의 다른 글

[Python] 모듈 #1  (0) 2016.11.12
[Python]클래스(3)  (0) 2016.11.02
[Python]클래스 (1)  (0) 2016.09.16
[Python]파일(File) 사용법  (0) 2016.09.16
[Python]사용자 입력  (0) 2016.09.16

+ Recent posts