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"))
相关推荐
lifallen1 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研1 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi2 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
cpsvps_net2 小时前
美国服务器环境下Windows容器工作负载智能弹性伸缩
windows
mit6.8242 小时前
[1Prompt1Story] 滑动窗口机制 | 图像生成管线 | VAE变分自编码器 | UNet去噪神经网络
人工智能·python
没有bug.的程序员2 小时前
JVM 总览与运行原理:深入Java虚拟机的核心引擎
java·jvm·python·虚拟机
甄超锋2 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
cui__OaO3 小时前
Linux软件编程--线程
linux·开发语言·线程·互斥锁·死锁·信号量·嵌入式学习
鱼鱼说测试3 小时前
Jenkins+Python自动化持续集成详细教程
开发语言·servlet·php
AntBlack3 小时前
不当韭菜V1.1 :增强能力 ,辅助构建自己的交易规则
后端·python·pyqt