파이썬, 함수 데코레이터 예제
글. 수알치 오상문
함수 데코레이터 예제이다.
이 예제는 금액이 담긴 리스트를 전달받으면 함수 데코레이터로 연동된 다른 함수를 통하여 부가세를 계산한 금액 정보들을 돌려받는다.
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 원
==========================
반응형
'Python 기초' 카테고리의 다른 글
파이썬 코드 작성 규칙 (Python Coding Convention) 기초 (0) | 2022.06.15 |
---|---|
Python 가이드 (TCP School) (0) | 2022.06.06 |
Python, List 복사 (deep copy) (0) | 2022.05.27 |
파이썬, 클래스에 __slots__ 사용하기 (0) | 2022.05.21 |
파이썬, f 문자열 활용 (변수, 수식, 함수호출문 포함하기) (0) | 2022.05.21 |