Python 检查函数是否已执行

Python 检查函数是否已执行,python,Python,首先,很抱歉标题不够精确,我没有受到启发 我的目标是检查是否在某个超时后调用了类方法 到目前为止,我的代码如下: class MyCallCallback(pj.CallCallback): def __init__(self, call=None): pj.CallCallback.__init__(self, call) # Notification when call state has changed def on_state(self):

首先,很抱歉标题不够精确,我没有受到启发

我的目标是检查是否在某个超时后调用了类方法
到目前为止,我的代码如下:

class MyCallCallback(pj.CallCallback):
    def __init__(self, call=None):
        pj.CallCallback.__init__(self, call)

    # Notification when call state has changed
    def on_state(self):
       # Do stuff

        if self.call.info().state == pj.CallState.DISCONNECTED:
            # Do stuff

        elif self.call.info().state == pj.CallState.CONFIRMED:
            # Do stuff

    # Notification when call's media state has changed.
    def on_media_state(self):
        if self.call.info().media_state == pj.MediaState.ACTIVE:
            # Do stuff
        else:
            # Do stuff
这就是所谓的:

def make_call(uri):
    try:
        return acc.make_call(uri, cb=MyCallCallback)
    except pj.Error, e:
        print "Exception: " + str(e)
        return None
当我调用回调时,我想检查来自
MyCallBack
on_state
事件是否在超时后触发
我试过这样的东西:

timeout = time.time() + 1
 while time.time() > timeout:
     if [on_state is no triggered]
        sys.exit(-1)
但却找不到合适的方法

你有什么建议吗

编辑 我不能使用这样的旗帜系统:

class MyCallCallback(pj.CallCallback):
    on = 0
    timeout = time.time() + 5
    while time.time() < timeout:
        print "Waiting ..."
        pass

    if on != 1:
        print "Fail"
        sys.exit(-1)

    def __init__(self, call=None):
        pj.CallCallback.__init__(self, call)
        self.on = 0

    # Notification when call state has changed
    def on_state(self):
        print "ON_STATE"
        self.on = 1
类MyCallCallback(pj.CallCallback):
on=0
超时=时间。时间()+5
while time.time()<超时:
打印“等待…”
通过
如果打开!=1:
打印“失败”
系统出口(-1)
定义初始化(self,call=None):
pj.CallCallback.\uuuuu init\uuuuuuu(self,call)
self.on=0
#呼叫状态更改时的通知
def on_状态(自身):
打印“ON_状态”
self.on=1

因为它将是同步的。

在\u状态下
执行时可能会翻转布尔对象范围的变量。我不知道这是否是正确的解决方案,但这是一个解决方案
self.on=0
on_state
self.on=1
。您使用的是什么API?大多数都会使用超时参数和回调参数。我使用的是PJSIP:@spectre-d:请参阅我的编辑:)
在执行时,可以翻转布尔对象范围的变量。我不知道这是否是正确的解决方案,但这是一个解决方案
self.on=0
on_state
self.on=1
。您使用的是什么API?大多数都会使用超时参数和回调参数。我正在使用PJSIP:@spectre-d:请参阅我的编辑:)