def bindkw(fun, **kwbind):
    """
    kwarg 바인딩된 함수 return.
    ex)
    def fun(opt1, opt2):
        print opt1, opt2

    f = bind(fun, opt1=2, opt2=3)
    f()
    :param function fun:
    :param kwbind:
    :return: function
    """

    @functools.wraps(fun)
    def wrapped(*args, **kwargs):
        kws = kwbind.copy()
        kws.update(kwargs)
        return fun(*args, **kws)

    return wrapped
def bindkw(fun, **kwbind):
    """
    kwarg 바인딩된 함수 return.
    ex)
    def fun(opt1, opt2):
        print opt1, opt2

    f = bind(fun, opt1=2, opt2=3)
    f()
    :param function fun:
    :param kwbind:
    :return: function
    """

    @functools.wraps(fun)
    def wrapped(*args, **kwargs):
        kws = kwbind.copy()
        kws.update(kwargs)
        return fun(*args, **kws)

    return wrapped
def bindkw ( fun , * * kwbind ) : @ functools . wraps ( fun ) def wrapped ( * args , * * kwargs ) : kws = kwbind . copy ( ) kws . update ( kwargs ) return fun ( * args , * * kws ) return wrapped
kwarg 바인딩된 함수 return.
    ex)
    def fun(opt1, opt2):
        print opt1, opt2

    f = bind(fun, opt1=2, opt2=3)
    f()
    :param function fun:
    :param kwbind:
    :return: function
kwarg 바인딩된 함수 return . ex ) def fun ( opt1 opt2 ) : print opt1 opt2