Вы можете сделать это, написав собственный менеджер контекста, который внутренне вызывает эту функцию, попробуйте код, приведенный ниже:
class SimpleFoo:
def __init__(self,x,y,z, option):
self.x = x
self.y = y
self.z = z
self.option = option
def __enter__(self):
if self.option:
return foo(self.x,self.y,self.z)
else:
return foo(self.y,self.z,self.x)
def __exit__(self, type, value, traceback):
if type != None:
print("Error in SimpleFoo")
print("Error Type :", type)
print("Error Value :", value)
print("Error Traceback :", traceback)
self.status = value
Теперь, если вы хотите использовать это, используйте его, как показано ниже:
with SimpleFoo(1,2,3,True) as foo:
doSomething(foo)
Надеюсь, это поможет.