python的bind函数

# -*- coding:utf-8 -*-

class Functor(object):
    def __init__(self, func, index=0, *args, **kwargs):
        self._Func = func
        self._Index = index
        self._Args = args
        self._Kwargs = kwargs
        
    def __call__(self, *args, **kwargs):
        args = args[:self._Index] + self._Args + args[self._Index:]
        kwargs = kwargs.copy()
        kwargs.update(self._Kwargs)
        return self._Func(*args, **kwargs)
        
        
def bind(func, index=0, *args, **kwargs):
    return Functor(func, index, *args, **kwargs)
原文地址:https://www.cnblogs.com/shuilan/p/3762182.html