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:请参阅我的编辑:)