Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Tableau
- numpy
- machineleaning
- data analysis
- MachineLearning
- 파이썬
- 범죄통계
- 데이터분석가
- data analyst
- machinelearing
- data
- Data Scientist
- DNN
- AISCHOOL
- 데이터 분석가
- Deeplearning
- Machine Learning
- 데이터 사이언티스트
- EDA
- ai
- SQL
- deep learning
- 멋쟁이사자처럼
- pandas
- python
- CNN
- Data Science
Archives
- Today
- Total
Molybdenum의 개발기록
[TIL] 9일차_PYTHON_Decorator 본문
▶ 데코레이터 : decorator
- 함수에서 중복되는 코드를 빼서 데코레이터 함수로 만들어 코드를 작성하는 방법
- 원래 있던 함수에 새로운 기능을 추가한 함수로 변경할 때 주로 사용
-> deco 함수의 파라미터 fucn1이 들어감
-> func1 함수는 deco 함수의 return 함수인 wrapper 함수로 변경한다.
def wrapper = 호출할 함수를 감싸는 함수 (마지막으로 wrapper함수를 다만들었으면 return을 사용해 wrapper 함수 자체를 반환한다.
def func1():
print('code1')
print('code2')
print('code3')
def func2():
print('code1')
print('code4')
print('code3')
def deco(func):
def wrapper(*args, **kwargs):
print('code1')
func()
print('code3')
return wrapper
@deco
def 함수이름():
코드
@deco
def func1():
print('code2')
@deco
def func2():
print('code4')
func1()
func2()
code1
code2
code3
code1
code4
code3
- timer 데코레이터 함수 생성
import time
def timer(func):
def wrapper(*args, **kwargs):
start = time.time() # 현재시간 저장
result = func(*args, **kwargs)
end = time.time() # 현재시간 저장
print(f'running time : {end - start} sec')
return result
return wrapper
@timer
def plus(n1, n2):
return n1 + n2
def minus(n1, n2):
return n1 - n2
-> plus에는 timer가 붙어서 time이 나오지만 minus에서는 붙어있지 않아 나오지 않는다.
plus(3,2)
running time : 1.6689300537109375e-06 sec
5
minus(3,2)
1
- 패스워드를 맞춰야 함수의 실행이 가능하도록 하는 데코레이터 작성
def admin(func):
def wrapper(*args, **kwargs):
pw = input('insert password : ')
if pw == 'python': # 패스워드 맞음
result = func(*args, **kwargs)
else: # 패스워드 맞지 않음
result = 'wrong password!'
return result
return wrapper
def plus(n1, n2):
return n1 + n2
@timer
@admin
def minus(n1, n2):
return n1 - n2
plus(1,2)
3
minus(1,2)
insert password : python
running time : 3.484102249145508 sec
-1
출처-멋쟁이사자처럼_AISCHOOL_박두진강사님
'TIL' 카테고리의 다른 글
[TIL] 9일차_QUIZ (0) | 2023.03.03 |
---|---|
[TIL] 9일차_PYTHON_Correlation_Cofficient_Code (0) | 2023.03.03 |
[TIL] 9일차_PYTHON_Class (0) | 2023.03.03 |
[TIL] 8일차_PYTHON_Function_03 (0) | 2023.03.03 |
[TIL] 8일차_PYTHON_Fuction_02 (0) | 2023.03.03 |
Comments