데코레이터
Decorator
Decorator
2020.12.07데코레이터 (Decorator) 함수 앞뒤에 기능을 추가해서 손쉽게 함수를 활용할 수 있는 기법 혹시 다음과 같이 @가 사용된 파이썬 코드를 본 적이 있으신지? @decorator_func def function(): print("what is decorator?") 위 코드에서 @decorator_func 부분이 데코레이터임 def logger_login(): print("Dave login") logger_login() 시간을 앞뒤로 추가하고 싶다. 이렇게 넣으면 됩니다. import datetime def logger_login(): print(datetime.datetime.now()) print("Dave login") print(datetime.datetime.now()) logger_logi..
데코레이터를 이해하기전 알아야 할것들
데코레이터를 이해하기전 알아야 할것들
2020.12.06first_class 함수 다음과 같이 다룰 수 있는 함수를 first_class 함수라고 부름 함수 자체를 변수에 저장가능 함수의 인자에 다른 함수를 인수로 전달 가능 함수의 반환 값(return 값)으로 함수를 전달 가능 파이썬과 First_class 함수 사실 파이썬에서는 모든 것이 객체! 파이썬 함수도 객체로 되어 있어서, 기본 함수 기능 이외 객체 와 같은 활용이 가능 즉 파이썬의 함수들은 First-class 함수로 사용가능 언어별 일급함수 지원여부 python, Go, javascript, Kotlin 은 일급함수 지원 c언어 등은 미지원 def calc_square(digit): return digit * digit print(calc_square(2)) def list_square(fun..
간단한 데커레이터 구현하기
간단한 데커레이터 구현하기
2020.11.28import time def clock(func): def clocked(*args): # 내부 함수 clocked() 가 임의 개수의 위치 인수를 받을 수 있도록 정의한다. t0 = time.perf_counter() result = func(*args) # clocked() 에 대한 클로저에 자유 변수 func가 들어가야 이 코드가 작동한다. elapsed = time.perf_counter() name = func.__name__ arg_str = ', '.join(repr(arg) for arg in args) print('[%0.8fs] %s(%s) -> %r' % (elapsed, name, arg_str, result)) return result return clocked 이함수는 데커레이트..