Найти - Пользователи
Полная версия: TypeError: 'list' object is not callable
Начало » Центр помощи » TypeError: 'list' object is not callable
1
error654
Добрый день! Уже голову всю поломал, как исправить ошибку TypeError: “'list' object is not caрlable” из учебника Лутца?
 #mytimer.py
import time
resp = 1000
resp_list = range(resp)
def timer(func, *pargs, **kargs):
    start = time.clock()
    for i in resp_list:
        ret = func(*pargs, **kargs)
    elapsed = time.clock() - start
    return elapsed, ret
#timeseqs.py
import sys
import mytimer
resp = 10000
resp_list = range(resp)
def for_loop():
    res = []
    for x in resp_list:
        res.append(abs(x))
    return res
def list_comp():
    return [abs(x) for x in resp_list]
def map_call():
    return list(map(abs, resp_list))
def gen_expr():
    return list(abs(x) for x in resp_list)
def gen_func():
    def gen():
        for x in resp_list:
            yield abs(x)
    return list(gen())
print(sys.version)
for test in (for_loop(), list_comp(), map_call(), gen_expr(), gen_func()):
    elapsed, result = mytimer.timer(test)
    print('-' * 33)
    print('%-9s: %.5f => [%s...%s]' %
          (test.__name__, elapsed, result[0], result[-1]))

3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25)

Traceback (most recent call last):
File “/Users/ergo/Development/PycharmProjects/Lutc/timeseqs.py”, line 35, in <module>
elapsed, result = mytimer.timer(test)
File “/Users/ergo/Development/PycharmProjects/Lutc/mytimer.py”, line 10, in timer
ret = func(*pargs, **kargs)
TypeError: ‘list’ object is not callable

Process finished with exit code 1
Stright
В строке
 test in (for_loop(), list_comp(), map_call(), gen_expr(), gen_func())
надо передавать функции, а не результат их вызова (они возвращают список), получается, что функция timer пытается вызвать список, а должна вызывать функцию.
Надо
 test in (for_loop, list_comp, map_call, gen_expr, gen_func):
error654
ТОчно!! спасибо большое
Stright
В строке
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