1. 程式人生 > 其它 >每日進步一點點:偏函式的學習使用

每日進步一點點:偏函式的學習使用

#!/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!