这是我的代码:
import time
def f(method,timeout,condition=False,*args,**kwargs):
t_end=time.time() +timeout
while time.time()<t_end:
ret=method(*args,**kwargs)
if condition:
return ret
return ret
def f2(a,b):
print(a,b)
def f3(a):
print(a)
问题是:如何调用方法f,以便它可以使用参数f2和f3,例如。 f(f2,2,*(1,2))
而且我不想使用@decorator。
答案 0 :(得分:1)
condition = False是关键字参数。所以将它移到* args旁边。 除此之外,只需根据您传递的函数传递参数。
import time
def f(method, timeout, *args, condition=False, **kwargs):
t_end = time.time() + timeout
while time.time() < t_end:
ret = method(*args,**kwargs)
if condition:
return ret
return ret
def f2(a, b):
print(a, b)
def f3(a):
print(a)
f(f2, 2, *(1,2))
f(f3, 2, 1)