Сигнал Python: чтение возврата из функции обработчика сигнала - PullRequest
2 голосов
/ 01 июня 2011

Простой вопрос; Как вы читаете возвращаемое значение функции, которая вызывается как обработчик сигнала?

import signal

def SigHand(sig, frm):
    return 'SomeValue'

signal.signal(signal.SIGCHLD, SigHand)
signal.pause()

Есть ли способ прочитать возвращаемое значение 'SomeValue', кроме как установить его как глобальное?

1 Ответ

3 голосов
/ 01 июня 2011

Вы можете создать простой класс с атрибутом возвращаемого значения.

>>> import signal
>>> class SignalHandler(object):
...     def __init__(self):
...         self.retval = None
...     def handle(self, sig, frm):
...         self.retval = sig
... 
>>> s = SignalHandler()
>>> s.retval
>>> signal.signal(signal.SIGALRM, s.handle)
0
>>> signal.alarm(1)
0
>>> s.retval
14
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...