2011-06-01 83 views
2

簡單問題;你如何讀取被稱爲信號處理函數的函數的返回值?Python信號:從信號處理函數讀取返回

import signal 

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

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

有沒有辦法讀取除了將其設置爲全局的返回值'SomeValue'

回答

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