假设我有两个函数,它们都调用一个decorator函数,该函数以两个方法作为参数:
def decorator(connector, disconnector):
def decorator(function):
def decorated_function(*args, **kwargs):
print("connecting")
connector(args[0])
result = function(*args, **kwargs)
print("disconnecting")
# only want this to be called when function() is completely done
disconnector(args[0])
return result
return decorated_function
return decorator
@decorator(connector, disconnector)
def func1():
func2()
print "func2 done"
@decorator(connector, disconnector)
def func2():
print "hello world"
调用func1()时,是否有方法防止在func1()完全执行完毕之前调用装饰器中的隔离开关方法?在这种情况下,我不希望对装饰器的func2()调用执行连接/断开连接
如果您希望在断开连接之前完全完成func1,请执行以下操作:
输出:
注意:上面的代码是用python3编写的。在您的情况下,只需更新代码中的print语句(删除括号)
由于您正在将参数传递给
connector(args[0])
,请将参数传递给func1()
。我传递了一个伪整数=10相关问题 更多 >
编程相关推荐