Найти - Пользователи
Полная версия: Декораторы
Начало » Python для новичков » Декораторы
1
Zverushko
Доброго времени суток!
Есть код:
import time
def timer(f):
    def tmp(*args,**kwargs):
        t=time.time()
        res=f(*args,**kwargs)
        print ('Время выполнения функции: %f' % (time.time()-t))
        return res
    return tmp
@timer
def func(x):
    return x**x
print(func(20000))

Он работает, Время выполнения функции: 0.005003
Но в упор не понимаю почему 20000 передается в tmp
Прошу подсказать, спасибо.
FishHook
1. func=timer(func)# из определения декоратора
2. timer(func) возвращает tmp, следовательно
3. func=tmp
4. func(20000) === tmp(20000)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB