inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

일급함수 - 데코레이터(4-2)

데코레이터 미사용 샘플 문의 - 결과가 2개씩 나옵니다.

해결된 질문

292

MIKE.aeon

작성한 질문수 53

0

강사님 질문 있습니다. 아래처럼 코드를 사용해서 실행하니 결과가 2개씩 나오는데, 이유가 무엇인가요?

# 데코레이터 실습
import time

def perf_clock(func):
    def perf_clocked(*args):
        # 함수 시작 시간 
        st = time.perf_counter() 
        result = func(*args)
        # 함수 종료 시간 계산
        et = time.perf_counter() - st 
        # 실행 함수명
        name = func.__name__
        # 함수 매개변수 
        arg_str = ''.join(repr(arg) for arg in args)
        # 결과 출력
        print('[%0.5fs] %s(%s) -> %r' % (et, name, arg_str, result)) 
        return result 
    return perf_clocked

@perf_clock
def time_func(seconds):
    time.sleep(seconds)

@perf_clock
def sum_func(*numbers):
    return sum(numbers)

# 데코레이터 미사용
none_deco1 = perf_clock(time_func)
none_deco2 = perf_clock(sum_func)

# print(none_deco1, none_deco1.__code__.co_freevars)
# print(none_deco2, none_deco2.__code__.co_freevars)

print()
print('-' * 40'Called None Decorator -> time_func')
none_deco1(1.5)
print()
print('-' * 40'Called None Decorator -> sum_func')
none_deco2(100150250300350)

결과는 아래와 같습니다.

(env_craw) D:\workspace\Python>python decolate.py

---------------------------------------- Called None Decorator -> time_func

[1.51387s] time_func(1.5) -> None

[1.51407s] perf_clocked(1.5) -> None

---------------------------------------- Called None Decorator -> sum_func

[0.00001s] sum_func(100, 150, 250, 300, 350) -> 1150

[0.00014s] perf_clocked(100, 150, 250, 300, 350) -> 1150

데코레이터 데코레이터미사용 django python

답변 3

2

좋은사람

안녕하세요.

데코레이터 미사용시에는 데코레이터를 주석처리 해주시고 실행해주세요.

@perf_clock

@perf_clock

0

독고중년

데코레이터  설명하실때  보여주신 인터넷문서 링크 알 수 있을까요?

0

MIKE.aeon

답변 감사합니다.

진도미확인 (진도가 안 넘어감)

0

42

1

RuntimeError: There is no current event loop in thread 'MainThread'

0

86

1

chapter 07-01 실행 오류

0

68

1

Chapter05-04 : sum_func의 합이 이중 출력됩니다.

0

79

2

45. 병렬성 2 - Futures(5-1) wait가 의도된 대로 동작하지 않습니다.

0

95

2

멀티스레딩 - 44. 병렬성 1 - Futures(4-2)

0

72

2

chapter05_02 클로저 질문사항 !

0

54

1

LV1 설정

0

90

2

매직 메소드의 호출 방법 차이 문의

0

133

2

왜 numbers리스트를 만들때 str으로 숫자를 감싸나요?

0

96

2

스크랩핑 실습 중 Mac OS 인증서 문제

0

130

1

AsyncIO 멀티 스크랩핑 실습 예제 관련 질문

0

169

1

강의자료가 영상과 다릅니다

0

257

2

closure.cell_contents 초기화 하기 문의

0

133

2

map함수 사용 시, list변환 방법 문의

0

337

2

__mul__ 백터 * 숫지, 백터 * 백터 처리

0

146

1

del처리후 질문입니다.

0

155

1

car_list(car1,car2,car3) 인스턴스 tuple 타입 문의

0

225

1

coroutine에 대한 질문

0

244

1

제너레이터 이터레이터 질문이 있습니다.

0

251

1

atom install package search not working

0

277

1

Magic Method - Not Implemented

0

401

1

가상환경 질문!

0

406

1

병렬처리 추가 질문이 있습니다.

0

246

1