python 如何封装在某带参数函数之后等待时间?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 如何封装在某带参数函数之后等待时间?相关的知识,希望对你有一定的参考价值。

比如,要实现一步步的操作,每个都要等待一会
func1( )
time.sleep(2)
func2( )
time.sleep(3)
……

尝试了这样封装
def oper_wait(func, wait_time=2):
func( )
time.sleep(wait_time)

oper_wait(func1, wait_time=2)
oper_wait(func2, wait_time=3)

但是,对于必须带参数的函数,要怎么封装?
比如
def add(a,b)
return a+b

oper_wait(add(1,2), wait_time=2)
这样就肯定会报错

题主你好,

方法及相应代码见截图:

*.方法不只一种, 题主看看如果不合适请追问. 上面这种做法的好处是封装的这个函数func可以带任意多个位置参数.  //就图主的问题来看, *args就够了, 如果func函数中还有关键字参数,则还需要使用**argv.

-----

希望可以帮到题主, 欢迎追问

追问

感谢,此方法较符合我要求,具体还是有些问题,
原始函数,是ui2 库里的,例如,打开某个app后,点击某个按钮,再退出
d = uiautomator2.connect( )
d.app_start("apk_name")

d(resourceId="button_name").click( )

d.app_clear("apk_name")
我需要一步都等待一点时间的需求就是从这里来的,结合您的方法应怎样

追答

你是做测试的?

追问

是的,测试
刚才试验了,用
oper_wait(d.app_start, "apk_name")就行了

感谢

追答

客气^^

参考技术A

这种问题最好是使用包装器,下面是一个例子:

import time

def f(func=None,wait_time=2):

def g(func):

def h(*args,**kwargs):

time.sleep(wait_time)

return func(*args,**kwargs)

return h

return g(func) if func else g

#wait_time使用默认值2

@f

def add(a,b):

return a+b

#wait_time使用值6

@f(wait_time=6)

def sub(a,b):

return a-b

#调用

print(add(1,2),sub(2,1))

这是截图:

参考技术B def oper_wait(func,argc=(),kg=, wait_time=2):
func(*argc,**kg)
time.sleep(wait_time)

def funa(a,b,c=1,d=9):
print a
print b
print c
print d
oper_wait(funa,argc=(5,7),kg=, wait_time=2)
oper_wait(funa,argc=(5,7),kg='c':1,'d':'ok', wait_time=2)
参考技术C

用装饰器啊

如何通过Timer将等待时间参数化

场景:当taskA执行结束后,等待到指定时间点后(该时间点是参数化的,而非固定写死的时间点),再执行下一个taskB

解决方案:

  1) 在创建一个workflow变量,如$$Time, 它的必须类型是date/time类型

        技术图片

      2) taskA之后创建一个assignment task,将$$Time值设定为指定的时间点

          注意:指定的时间点的表达式返回值必须是date/time类型,并且格式必须是MM-DD-YYYY HH24:MI:SS

       技术图片

 

 

      3)  在Timer task里使用变量$$Time

       技术图片

 

  整体流程:

        taskA --> assginment --> timer --> taskB

 

参考链接:https://kb.informatica.com/howto/6/Pages/1/150704.aspx

以上是关于python 如何封装在某带参数函数之后等待时间?的主要内容,如果未能解决你的问题,请参考以下文章

二次封装函数

基于python生成器封装的协程类

python如何在某.py文件中调用其他.py内的函数

python ---------函数

python进程和线程中的join方法

Python-函数的参数