1. 问题:
如何将一些简单的功能通过参数传递,避免定义过多的函数?
2. 解决方式:
使用lambda匿名函数,实现不需要函数名称的功能代码参数传递。
- 示例:
# lambda方式
def generate_func_by_lambda(name):
test_map = {
"函数1": lambda: print("---------1. Demo Function one Running"),
"函数2": lambda *param: print(f"---------2. Demo Function two Running...函数的入参是:{param}")
}
return test_map[name]
# 定义函数方式
def demo_func_1():
print("---------1. Demo Function one Running")
def demo_func_2(*param):
print(f"---------2. Demo Function two Running...函数的入参是:{param}")
def generate_func(name):
test_map = {
"函数1": demo_func_1,
"函数2": demo_func_2
}
return test_map[name]
if __name__ == '__main__':
print("###############使用lambda匿名函数")
generate_func_by_lambda("函数1")()
generate_func_by_lambda("函数2")("lambda调用","param1","param2")
print("++++++++++++++自定义函数调用")
generate_func("函数1")()
generate_func("函数2")("自定义函数调用", "param1", "param2")
- 示例结果: