파이썬, 함수 데코레이터 예제 

 

글. 수알치 오상문 

 

함수 데코레이터 예제이다.

 

이 예제는 금액이 담긴 리스트를 전달받으면 함수 데코레이터로 연동된 다른 함수를 통하여 부가세를 계산한 금액 정보들을 돌려받는다.

VAT = 0.1  # 부가가치세 비율 (10%)
# bill 함수와 연동하여 부가세, 합계를 계산하여 돌려주는 함수 
def plus_vat(func):
    def calc(*args, **kwargs):
        price = func(*args, **kwargs)
        vat = int(price * 0.1)
        total = price + vat
        return total, price, vat, 
    return calc
# bill 함수 결과를 plus_vat 함수와 연동하는 데코레이터 
@plus_vat
def bill(price_list):  # price_list: 상품 금액 리스트 
    return sum(price_list)
# 상품 금액 목록 
price_list = [10000, 20000, 30000]
# bill 함수에 상품 금액 목록을 전달하면, plus_vat 함수까지 연동하여 동작
total, price, vat = bill(price_list)
print('==========================')
print('         영 수 증')
print('--------------------------')
print('상  품   금  액:', price)
print('부가가치세(10%):', vat)
print('--------------------------')      
print('결  제   금  액:', total, '원')
print('==========================')


[실행 결과]

==========================
       영 수 증
--------------------------
상  품   금  액: 60000
부가가치세(10%): 6000
--------------------------
결  제   금  액: 66000 원
==========================



 

반응형

+ Recent posts