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"))
相关推荐
初听于你7 分钟前
LoRa与ZigBee:物联网双雄对决
服务器·网络·windows·网络协议·计算机网络
寒秋丶13 分钟前
AutoGen多智能体协作、人机交互与终止条件
人工智能·python·microsoft·ai·人机交互·ai编程·ai写作
练习时长一年21 分钟前
Jdk反射优化
java·开发语言
Turnsole_y21 分钟前
pytest与Selenium结合使用指南
开发语言·python
郝学胜-神的一滴1 小时前
深入解析C++命令模式:设计原理与实际应用
开发语言·c++·程序人生·软件工程·命令模式
課代表1 小时前
WindoWs 系统管理批处理脚本
windows·安全·脚本·注册表·bat·命令·组策略
AI量化投资实验室1 小时前
年化398%,回撤11%,夏普比5,免费订阅,5积分可查看参数|多智能体的架构设计|akshare的期货MCP代码
人工智能·python
ShineSpark1 小时前
Crashpad介绍
c++·windows
ʚ希希ɞ ྀ1 小时前
单词接龙----图论
开发语言·javascript·ecmascript
散峰而望1 小时前
基本魔法语言数组 (一) (C语言)
c语言·开发语言·编辑器·github·visual studio code·visual studio