Найти - Пользователи
Полная версия: Ошибка в коде или в голове. Помогите разобраться.
Начало » Python для новичков » Ошибка в коде или в голове. Помогите разобраться.
1
kozlo22
Итак, наткнулся я в книге М. Лутца на такой вот пример:
#реализация утилиты timer собственноручно
#модуль mytimer
]import time, sys
trace = lambda *args: None # or print
timefunc = time.clock if sys.platform == 'win32' else time.time
def timer(func, *pargs, _reps=1000, **kargs):
	trace(func, pargs, kargs, _reps)
	start = timefunc()
	for i in range(_reps):
		ret = func(*pargs, **kargs)
	elapsed = timefunc() - start
	return (elapsed, ret)
def best(func, *pargs, _reps=50, **kargs):
	best = 2 ** 32
	for i in range(_reps):
		(time, ret) = timer(func, *pargs, _reps=1, **kargs)
		if time < best: best = time
	return (best, ret)
#модуль timeseqs
import sys, mytimer
reps = 10000
repslist = range(reps)
def forLoop():
    res = []
    for x in repslist:
        res.append(abs(x))
    return res
def listComp():
    return [abs(x) for x in repslist]
def mapCall():
    return list(map(abs, repslist))
def genExpr():
    return list(abs(x) for x in repslist) 
def genFunc():
    def gen():
        for x in repslist:
            yield abs(x)
    return list(gen())
print(sys.version)
for test in (mytimer.timer, mytimer.best):
    print('<%s>' % test.__name__)
    for tester in (forLoop, listComp, mapCall, genExpr, genFunc):
        elapsed, result = tester(test)
        print('-' * 35)
        print('%-9s: %.5f => [%s...%s]' % (test.__name__, elapsed, result[0], result[-1]))
    
Если запустить модуль timeseqs, то интерпретатор генерирует исключение:
TypeError: timer() missing 1 required positional argument: 'func'
Помогите решить проблему, т.к. я не в состоянии сам это сделать.
JOHN_16
kozlo22
elapsed, result = tester(test)
Мне думается что надо наоборот
elapsed, result = test(tester)
kozlo22
JOHN_16
как все просто… Спасибо, Вам.
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