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)

 

你可能感兴趣的:(python)