标签:函数嵌套 for 传递 函数 erro bsp max log 调用
所有关键字封装
等待函数的条件判断, 替换sleep, 在依次以条件逻辑执行较多用例时可以有效节省执行等待时间, 快速定位问题
_wait_until(self, timeout, error, function, *args)
概述: 直到function(*args)为True时return None, 为False则return error, 超时时间timeout
参数:
error: 初始化为超时异常
function: 条件判断, 返回True or False
return: None or error
1 def _wait_until(self, timeout, error, function, *args): 2 error = error.replace(‘<TIMEOUT>‘, self._format_timeout(timeout)) 3 def wait_func(): 4 return None if function(*args) else error 5 self._wait_until_no_error(timeout, wait_func)
_wait_until_no_error(self, timeout, wait_func, *args)
概述: 直到wait_func(*args)为False时return, 超时则抛出超时异常
1 def _wait_until_no_error(self, timeout, wait_func, *args): 2 timeout = robot.utils.timestr_to_secs(timeout) if timeout is not None else self._timeout_in_secs 3 maxtime = time.time() + timeout 4 while True: 5 timeout_error = wait_func(*args) 6 if not timeout_error: return 7 if time.time() > maxtime: 8 raise AssertionError(timeout_error) 9 time.sleep(0.2)
最终调用的都是_wait_until_no_error(self, timeout, wait_func, *args). 在层层调用中, 使用到的Python语法, 一是函数嵌套, 而是"一切皆为对象", 函数也可做参数传递
标签:函数嵌套 for 传递 函数 erro bsp max log 调用
原文地址:http://www.cnblogs.com/elsarong/p/6008998.html