在同一个函数中处理不同的可选回调可以通过以下几种方式实现:
def process_data(data, success_callback=None, error_callback=None):
try:
# 处理数据的逻辑
result = process(data)
if success_callback:
success_callback(result)
except Exception as e:
if error_callback:
error_callback(e)
def success_handler(result):
# 处理成功的逻辑
def error_handler(error):
# 处理错误的逻辑
data = get_data()
process_data(data, success_callback=success_handler, error_callback=error_handler)
def process_data(data, callbacks={}):
try:
# 处理数据的逻辑
result = process(data)
if 'success' in callbacks:
callbacks['success'](result)
except Exception as e:
if 'error' in callbacks:
callbacks['error'](e)
callbacks = {
'success': success_handler,
'error': error_handler
}
data = get_data()
process_data(data, callbacks=callbacks)
class Callbacks:
def success(self, result):
# 处理成功的逻辑
def error(self, error):
# 处理错误的逻辑
def process_data(data, callbacks=None):
try:
# 处理数据的逻辑
result = process(data)
if callbacks and hasattr(callbacks, 'success'):
callbacks.success(result)
except Exception as e:
if callbacks and hasattr(callbacks, 'error'):
callbacks.error(e)
callbacks = Callbacks()
data = get_data()
process_data(data, callbacks=callbacks)
以上是几种常见的处理不同可选回调的方式,具体选择哪种方式取决于实际需求和代码结构。
领取专属 10元无门槛券
手把手带您无忧上云