每日进步一点点:偏函数的学习使用
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
# DevVersion: Python3.6.8
# Date: 2021-11-16 22:39
# PyCharm|test
from functools import partial
# 偏函数的学习:
"""
1. 解决某些方法调用只能传函数名,但传的函数需要入参,如常见的进程里的回调,只能传函数名,无法为回调函数传参
2. 解决某些方法入参有10几个,但实际我们只会改动特定几个,就可以通过偏函数进行封装,后面调用只需传需要改的参数
"""
def learn_every_day(a, b, c, d, f=None, g="happy"):
return a + b + c + d
# 我们平常调用a,b都会固定分布传1,和2 只会使用c,d参数
learn_every_day_func_obj = partial(learn_every_day, 1, 2)
result = learn_every_day_func_obj(3, 4)
print(result) # 10
# 实现工作中的不同的业务有不同的操作需求
def my_add(model): pass
def my_del(model): pass
def my_update(model): pass
def exe_func(func, *args, **kwargs): return 1
class Model:
def __init__(self, a):
self.a = a
self.b = ""
model = Model(10000)
func_rule_dict = {"add": my_add, "del": my_del, "update": my_update}
rule_list = ["del", "update"] # 获取不同的人的需求
for rule in rule_list:
res = exe_func(func_rule_dict[rule], model)
# 通过偏函数解决
partial(func_rule_dict[rule], model)
人生苦短,我用python!
标签:
每日进步一点点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具