Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Python Создать исполняемый exe https://www.cyberforum.ru/ python/ thread1646198.html
В общем, потребовалось скомпилировать скрипт Python: import os, time, re def Plus(): start = time.time() file_rez = open('dataREZ.txt', 'w') list_files = os.listdir('.') ...
Python Исправить ошибки в коде лотереи
ВОТ КОД #Спортлото import random winning_nums = random.sample(range(1,36),6) counter = 1 print ("Добро пожаловать в наш сервис") print
Как получить HTML код страницы после запроса? Python
def get_html(url): response = urllib.request.urlopen(url) return response.read() Создаю первую программу для парсинга, использую такой код(см. выше) и html код в браузере не совпадает с...
Python Как декомпилировать рус-файл подскажите чем декомпилировать рус файл в читабельный ру? для 2 и 3 питона т.к не знаю на чем точно написано было Добавлено через 9 минут fileview pro говорит что скорее всего написано на 2.7... https://www.cyberforum.ru/ python/ thread1646034.html
Python Редактор кода консольный https://www.cyberforum.ru/ python/ thread1645715.html
Добрый день Киборги:) На сайте используем систему wordpress и нужно всегда под нового клиента делать ЛК. Но менеджеры не всегда могут правильно вставить в код инфу... Появилась идея сделать...
Сверить номера телефонов в разных форматах Python
Здравствуйте, помогите решить задачу (Питон 3.3): Телефонные номера в адресной книге мобильного телефона имеют один из следующих форматов: +7<код><номер> 8<код><номер> <номер>
Python Скрипт сравнения текста и его замены
Сам я, увы программировать не умею, долго искал в интернете нечто подобное, но увы, ничего не нашел, поэтому прошу вас, добрых форумчан помочь мне с этим 10-минутным (для вас) делом. И так, мы...
Python Ubuntu для Python Где можно подробно прочитать, как все настроить? В Ubuntu 15 стоит пайтон 3.Х, для Flask'а лучше 2.7 поставить? Потихоньку слезаю с Win7 и очень сильно туплю в консоли... Пробую с этого хабра... https://www.cyberforum.ru/ python/ thread1645208.html
Python Преобразовать from с меньшими затратами времени https://www.cyberforum.ru/ python/ thread1644645.html
Необходимо преобразовать с минимальными затратами времени выражения типа: from urllib.request import urlopen from urllib.parse import quote_plus В вид типа: from urllib/request import urlopen...
Python Различия между версиями в python изучаю питон, хочу решить легенькую задачку по спискам, найти сумму элементов нечетных(четных) чисел в списке. знаю , как ответ будет во второй версии пайтона, а как в третьей не знаю. подскажите... https://www.cyberforum.ru/ python/ thread1644559.html
Эксперт Pascal/Delphi
102 / 90 / 32
Регистрация: 30.05.2015
Сообщений: 589
0

Настроить декоратор на работу по дефолту (timeout=0)

24.01.2016, 19:19. Показов 1131. Ответов 3
Метки (Все метки)

есть декоратор:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
def timeoutf(timeout: int = 0):
    """
    decorator, execute function with timeout
    :param timeout: int, timeout in seconds, 0 - disable timeout
    :return: raise exception Timeout or result decorated function
    """
    def deco(func):
        # захотелось мне просто выполнить функцию если таймаут ее выполнения 0.... но увы...  !!!!!!!!
        if timeout == 0:
            return func()
        # подскажите как исправить !!!
 
        @functools.wraps(func)
        def wrapper(*args, **kwargs):
            res = [Exception('function [%s] timeout [%s seconds] exceeded!' % (func.__name__, timeout))]
 
            def new_func():
                try:
                    res[0] = func(*args, **kwargs)
                except Exception as e:
                    res[0] = e
 
            t = Thread(target=new_func)
            t.daemon = True
            try:
                t.start()
                t.join(timeout)
            except Exception as je:
                print('error starting thread')
                raise je
            ret = res[0]
            if isinstance(ret, BaseException):
                raise ret
            return ret
 
        return wrapper
 
    return deco
это для винды, пример использования:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def u():
    time.sleep(1)
 
    return 'dfgdfg'
    k = 1
    for ia in range(9999999):
        k = k * 2 + ia
    print(k)
 
 
if __name__ == '__main__':
    @timeoutf(0)
    def f():
        return u()
 
    print(f())
работает отлично, но вот по дефолту (тоесть таймаут 0) прикрутить не получается, прошу помочь

Вернуться к обсуждению:
Настроить декоратор на работу по дефолту (timeout=0)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2016, 19:19
Готовые ответы и решения:

Настроить phpstorm на работу с БД
может тема не там, если что перенесите. не могу настроить phpstorm на работу с удаленным сервером ...

Как настроить работу с COM
Подскажите, как сделать, чтобы можно было получить ссылку (GetObject) на класс в моём приложении. ...

Как настроить работу button
Как сделать, чтобы при нажатии на кнопку , происходила такая операция. Брались значения из TextBox...

Помогите настроить работу формы
Добрый день! Требуется помощь при работе со списками в форме. У меня есть простая форма,...

3
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.