[Tutor] "Overloading" methods
Lie Ryan
lie.1296 at gmail.com
Fri Sep 17 18:56:20 CEST 2010
On 09/17/10 00:22, Vince Spicer wrote:
>
>
> Well I can't comment on right or wrong I would think creating a simple
> class with a __call__ method is a little more pythonic.
I think even more pythonic is to use closure:
def create_setpattern(type_):
def f(self, pattern, parameter):
return pattern_generator(self, type_, pattern, parameter)
return f
setpattern_iis = create_setpattern('iis')
for short function body, you can use lambda:
def create_setpattern(t):
return lambda s, pat, par: pattern_generator(s, t, pat, par)
probably the best solution is to use functools.partial:
from functools import partial
setpattern_iis = partial(pattern_generator, type='iis')
however, this does NOT work due to (TypeError: pattern_generator() got
multiple values for keyword argument 'type'); do you think it will be
reasonable for partial to support this use case?
More information about the Tutor
mailing list