最近忘了python的内置方法自己写了个

179 阅读1分钟

功能描述: 可以对某个函数不确定多少个参数进行调用

案例

    def count_function(a, b, symbol='+'):
        if symbol == '*':
            return a * b
    repeatedly_execut_function(count_function, 1,2,4,5,6, symbol='*')
    结果:240
    
    print(repeatedly_execut_function(count_function, 1,2,4,5,6,7, symbol='+'))
    结果:25

def count_function(a, b, symbol='+'):
    if symbol == '+':
        return a + b
    if symbol == '-':
        return a - b
    if symbol == '*':
        return a * b
    if symbol == '/':
        return a / b

def repeatedly_execut_function(f, *args, **kwargs):
    """对同一个方法进行多次调用
    案例
    def count_function(a, b, symbol='+'):
        if symbol == '*':
            return a * b
    repeatedly_execut_function(count_function, 1,2,4,5,6, symbol='*')
    结果:240

    f: 你要执行的方法的名称记得不要加()
    *args: f方法需要的参数
    """
    ret = None
    if len(args) < 2:
        raise ValueError("参数数量不正确")
    for i in range(len(args) - 1):
        if i == 0:
            ret = f(args[0], args[1], **kwargs)
        else:
            ret = f(ret, args[i + 1], **kwargs)
    return ret


print(repeatedly_execut_function(count_function, 1,2,4,5,6, symbol='*'))