내 잡다한 노트

데코레이터와 클로저 간단하게 구현 본문

Language/Python

데코레이터와 클로저 간단하게 구현

peanutwalnut 2023. 9. 4. 23:03
import datetime
import time

def my_timer(original_function):
    import time
    def wrapper(*args, **kwargs):
        t1 = time.time()
        result = original_function(*args, **kwargs)
        t2 = time.time() - t1
        print(f'{original_function.__name__} 함수가 실행된 총 시간: {t2}초')
        return result
    return wrapper

@my_timer
def display_info(name, age):
    time.sleep(1)
    print(f'display_info({name}, {age}) 함수가 실행됐습니다.')

def outer_func(calc:int):
    def inner_func(num:int):
        if calc == 1: # calc는 free variable
            print(f'{num} + {num} = {num*2}')

    return inner_func

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    display_info('John', 25)

    a = outer_func(1) # closure
    a(3)

# See PyCharm help at https://www.jetbrains.com/help/pycharm/

'Language > Python' 카테고리의 다른 글

가상환경  (0) 2024.11.23
[Python] 클래스, 메소드와 관련된 문법  (1) 2023.05.11
numpy 배열 연산, 접근법  (0) 2023.04.04
(numpy)배열 생성, Shape  (0) 2023.04.04
[Python] 알아두면 좋을 문법 정리  (0) 2023.03.12