每日進步一點點:偏函式的學習使用
阿新 • • 發佈:2022-01-29
人生苦短,我用python!#!/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)