Saturday, February 05, 2011

Random Python Learning : partial

On the holiday I decided to learn more on python, and really there is much to learn!!!!!!
One of the module I learn about is the functools module. 

One of the interesting function that I learn is partial, basically it is partial application of a function
for example

import functools
def adder(a,b,c):
    return a+b+c
def adder2(a,b):
    return a+b
add_three = functools.partial(adder,1,2)
add_one = functools.partial(adder2,1)
print add_three(1)
# would print 4
print add_four(3)
# would print 6
So you can wrap a existing without rewriting it, but give some default value to the existing function. And is actually used in python decorators.

read more here
http://docs.python.org/library/functools.html

2 comments:

  1. Mark WONG5:21 AM

    currying?

    ReplyDelete
  2. bingo, this is what you use to do currying in python....
    pseudo currying anyway

    ReplyDelete