Форум сайта python.su
Пусть есть какой-то модуль solution с функцией f. Требуется написать функцию test , которая:
1. выполнит функцию f и возвратит её значение
2. если время, потраченное на выполнение превысило k - параметр функции, то прервёт выполнение f и возвратит что-то типа ‘too many time’
Пробовал использовать timeit:
from solution import f
def test(k):
t = Timer(""" f() """)
t.timeit(k)
Офлайн
И ещё вопрос: что обозначает слово global
Офлайн
Это всё значит, что тебе нужно попробовать использовать гугл и попытаться почитать про питон хотя бы что-нибудь, прежде чем задавать вопросы.
Офлайн
Ferroman, хотя-бы что-нибудь я прочитал. Гугл тоже использовал. Непомогло. Теперь буду ждать, пока добрый человек напишет что-нибудь дельное, а не вечные обвинения в адрес моей неграмотности в питоне.
Офлайн
timeit - служит для замера быстродействия ф-ции, которая передаётся как параметр (k - это ф-ция)
global - глобальна переменная,
типа
a = 5
def foo():
global a
print a
Офлайн
Slav0nic, спасибо большое. Можно поподробнее про функцию timeit? Может ли она прерывать выполнение функции, если она выполняется большое количество времени?
Офлайн
По-подробнее http://diveintopython.org/performance_tuning/timeit.html , http://docs.python.org/library/timeit.html
Прерывать не может. Прерывание процесса - это вообще отдеальная задача, которая решается по-разному в зависимости от условий.
Отредактировано (Янв. 21, 2009 20:57:35)
Офлайн
Exmap
phpшнег чтоли?) timeit служит для отладки кода, чтоб определить какой вариант кода работает быстрее
Офлайн
Офлайн
slav0nicНе-а. Я дотнетчик. Хотя и php знаю :) про timeit - понятно…
phpшнег чтоли?) timeit служит для отладки кода, чтоб определить какой вариант кода работает быстрее
Офлайн