我正在编写一个函数,它接受2个常规参数(字符串)和1个函数。主要功能是使用2个字符串参数(例如保存到数据库)。函数参数将允许添加额外的行为。示例:
def call(arg1, arg2, func):
save(arg1, arg2) # main functionality here.
if callable(func):
func(arg1, arg2)
def with_callback():
def log(*args):
values = ', '.join(str(x) for x in args)
print('call used with arguments: {values}'.format(values=values)
call('example', 'case', log)
这个想法和有效的Python是一样的:
Item 23: Accept Functions for Simple Interfaces Instead of Classes.
因此,实现类似于list.sort(key=somefunc)
或collections.defaultdict
的第一个参数
所以问题可以归结为:
如何实现函数(或类?)以函数作为参数,以便定义自定义行为?
(或者用不同的措辞:当使用函数作为参数时,自定义行为的首选方法是什么)
执行此操作的首选方法是使用
None
的默认参数:相关问题 更多 >
编程相关推荐