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"))
相关推荐
数据科学作家1 小时前
学数据分析必囤!数据分析必看!清华社9本书覆盖Stata/SPSS/Python全阶段学习路径
人工智能·python·机器学习·数据分析·统计·stata·spss
CookieCrusher2 小时前
数据泄露危机逼近:五款电脑加密软件为企业筑起安全防线
运维·数据库·windows·安全·文件加密·数据防泄漏·dlp
HXQ_晴天2 小时前
CASToR 生成的文件进行转换
python
java1234_小锋4 小时前
Scikit-learn Python机器学习 - 特征预处理 - 标准化 (Standardization):StandardScaler
python·机器学习·scikit-learn
Python×CATIA工业智造4 小时前
Python带状态生成器完全指南:从基础到高并发系统设计
python·pycharm
坐吃山猪4 小时前
SpringBoot01-配置文件
java·开发语言
向qian看_-_4 小时前
Linux 使用pip报错(error: externally-managed-environment )解决方案
linux·python·pip
晚风(●•σ )4 小时前
C++语言程序设计——06 字符串
开发语言·c++
我叫汪枫4 小时前
《Java餐厅的待客之道:BIO, NIO, AIO三种服务模式的进化》
java·开发语言·nio
Nicole-----4 小时前
Python - Union联合类型注解
开发语言·python