Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 12, 2016 21:28:57

Kylik
Зарегистрирован: 2016-03-16
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу понять ошибку

Помогите разобраться с примером(М.Лутц)

import time,sys

if sys.platform[:3] == 'win':
    timefunc =time.clock
else:
    timefunc =time.time
def trace(*args): pass
def timer(func,*pargs,**kargs):
    _reps = kargs.pop('_reps', 1000)
    trace(func,pargs,kargs,_reps)
    repslist = range(_reps)
    
    start = timefunc()
    for i in repslist:
        ret = func(*pargs, **kargs)
    elapsed = timefunc() - start
    return(elapsed, ret)
def best(func, *pargs, **kargs):
    _reps = kargs.pop('_reps', 50)
    best = 2 ** 32
    for i in range(_reps):
        (time,ret) = timer(func, *pargs, _reps=1, **kargs)
        if time < best: best = time
    return (best, ret)

для чего нужна функция trace и что происходит с переменной _reps = kargs.pop('_reps', 1000)

Офлайн

#2 Апрель 13, 2016 00:52:14

r00tl3ss
Зарегистрирован: 2016-03-31
Сообщения: 25
Репутация: +  5  -
Профиль   Отправить e-mail  

Не могу понять ошибку

def trace(*args): pass
В данном примере выступает в роли заглушки, т.е. ничего не делает. Скорее всего в следующих примерах будет добавлен функционал вывода информации о передаваемой функции(имя, параметры и т.п.)
_reps = kargs.pop('_reps', 1000)
В данном примере получение значения по ключу ‘_reps’ из словаря kargs, ключ при этом из словаря удаляется, если ключ не найдет, то возвращается 1000.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version