Python函数的函数名250217

  • 函数名其实就是一个变量,这个变量就是代指函数而已
  • 函数也可以被哈希,所以函数名也可以当作集合中的元素,也可作为字典的key值
python 复制代码
# 将函数作为字典中的值,可以避免写大量的if...else语句
def fun1():
    return 123
def fun2():
    return 456
def fun3():
    return 789
def fun4():
    return "abc"
map_fun = {"1": fun1, "2": fun2, "3": fun3, "4": fun4}
print(map_fun.get(input("Key value"))())
python 复制代码
# 将函数名做为列表中的成员,可以使用循环来简化代码,避免硬编码
def f1():
    return 1
def f2():
    return 2
def f3():
    return 3
list_fun = [f1, f2, f3]
for v in list_fun:
    print(v)
  • 上述代码之所以能用,是因为函数参数为空,这样不同名字的函数可以统一调用代码,如果不同函数有不同的函数,是不是就束手无策了呢?
python 复制代码
def f1(a):
    return a;
def f2(a, b):
    return a, b
map_fun = {"1": [f1, 555], "2": [f2, [666, 777]]}
list_value = map_fun.get(input("key value"))
if list_value:
	list_value[0](*list_value[1])
python 复制代码
def f1(a):
    return a;
def f2(a, b):
    return a, b
list_fun =[{"name": f1, "params": {"a": 5}}, {"name": f2, "params": {"a": 6, "b": 7}}]
for v in list_fun:
    v.get("name")(**v.get("params"))
相关推荐
huangdong_2 分钟前
拼多多商品图片采集技术深度解析:webp格式转换、SKU图自动分类与懒加载处理
开发语言·经验分享
我能坚持多久3 分钟前
C++继承详解
开发语言·c++
qq_2518364573 分钟前
基于java Web 哈尔滨文化活动网站毕业论文
java·开发语言·前端
量化君也3 分钟前
桥水基金全天候策略拆解,构建中国ETF躺平版策略
大数据·人工智能·python·算法·金融·业界资讯
cft56200_ln7 分钟前
TDA4时间同步3 网卡添加虚拟时间戳
c语言·开发语言·arm开发·驱动开发·嵌入式硬件·网络协议
爱吃苹果的梨叔11 分钟前
2026年分布式坐席系统哪家好:指挥中心与调度大厅选型参考
分布式·python
geovindu13 分钟前
go: Coroutines Pattern
开发语言·后端·设计模式·golang·协程模式
Stick_ZYZ13 分钟前
A2A:让 Agent 从单兵作战走向团队协作
java·开发语言·网络·人工智能·python·ai
江屿风14 分钟前
C++图论基础拓扑排序算法流食般投喂
开发语言·c++·笔记·算法·排序算法
郝学胜-神的一滴15 分钟前
Qt 高级开发 030:QListWidget 右键菜单全解,从策略配置到精准删除的优雅实现
开发语言·c++·qt·程序人生·用户界面