Python信号:读取从信号处理函数返回

时间:2011-06-01 16:20:41

标签: python return-value signals

简单的问题;你如何读取被称为信号处理程序的函数的返回值?

import signal

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

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

有没有办法读取返回值'SomeValue'而不是将其设置为全局?

1 个答案:

答案 0 :(得分:3)

您可以创建一个带有返回值属性的简单类。

>>> 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