Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 21, 2009 18:42:28

Exmap
От:
Зарегистрирован: 2009-01-21
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Тест функции в питон

Пусть есть какой-то модуль 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)
Не пашет… что вообще обозначает параметр функции Timer.timeit?



Офлайн

#2 Янв. 21, 2009 19:12:01

Exmap
От:
Зарегистрирован: 2009-01-21
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Тест функции в питон

И ещё вопрос: что обозначает слово global



Офлайн

#3 Янв. 21, 2009 20:00:26

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Тест функции в питон

Это всё значит, что тебе нужно попробовать использовать гугл и попытаться почитать про питон хотя бы что-нибудь, прежде чем задавать вопросы.

Офлайн

#4 Янв. 21, 2009 20:19:42

Exmap
От:
Зарегистрирован: 2009-01-21
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Тест функции в питон

Ferroman, хотя-бы что-нибудь я прочитал. Гугл тоже использовал. Непомогло. Теперь буду ждать, пока добрый человек напишет что-нибудь дельное, а не вечные обвинения в адрес моей неграмотности в питоне.



Офлайн

#5 Янв. 21, 2009 20:29:41

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Тест функции в питон

timeit - служит для замера быстродействия ф-ции, которая передаётся как параметр (k - это ф-ция)
global - глобальна переменная,
типа

a = 5
def foo():
global a
print a
удали глобал и глянь что произойдёт

Офлайн

#6 Янв. 21, 2009 20:35:40

Exmap
От:
Зарегистрирован: 2009-01-21
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Тест функции в питон

Slav0nic, спасибо большое. Можно поподробнее про функцию timeit? Может ли она прерывать выполнение функции, если она выполняется большое количество времени?



Офлайн

#7 Янв. 21, 2009 20:51:26

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Тест функции в питон

По-подробнее http://diveintopython.org/performance_tuning/timeit.html , http://docs.python.org/library/timeit.html
Прерывать не может. Прерывание процесса - это вообще отдеальная задача, которая решается по-разному в зависимости от условий.



Отредактировано (Янв. 21, 2009 20:57:35)

Офлайн

#8 Янв. 21, 2009 21:06:43

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Тест функции в питон

Exmap
phpшнег чтоли?) timeit служит для отладки кода, чтоб определить какой вариант кода работает быстрее

Офлайн

#9 Янв. 22, 2009 01:22:12

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Тест функции в питон

Офлайн

#10 Янв. 26, 2009 19:14:22

Exmap
От:
Зарегистрирован: 2009-01-21
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Тест функции в питон

slav0nic
phpшнег чтоли?) timeit служит для отладки кода, чтоб определить какой вариант кода работает быстрее
Не-а. Я дотнетчик. Хотя и php знаю :) про timeit - понятно…



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version