[Python-Dev] Possible patch for functools partial - Interested?

Michael Foord fuzzyman at voidspace.org.uk
Fri May 7 16:51:17 CEST 2010


On 07/05/2010 16:37, VanL wrote:
> Howdy all -
>
> I have an app where I am using functools.partial to bundle up jobs to
> do, where a job is defined as a callable + args. In one case, I wanted
> to keep track of whether I had previously seen a job, so I started
> putting them into a set... only to find out that partials never test
> equal to each other:
>
>    
>>>> import operator
>>>> from functools import partial
>>>> p1 = partial(operator.add)
>>>> p2 = partial(operator.add)
>>>> p1 == p2
>>>>          
> False
>    
>>>> seen = set();seen.add(p1)
>>>> p2 in seen
>>>>          
> False
>
> I created a subclass of functools.partial that provides appropriate
> __eq__ and __hash__ methods, so that this works as expected. I called
> the subclass a Job:
>    
>>>> j1 = Job(operator.add)
>>>> j2 = Job(operator.add)
>>>> j1 == j2
>>>>          
> True
>    
>>>> seen = set();seen.add(j1)
>>>> j2 in seen
>>>>          
> True
>    
>>>> j1 is j2
>>>>          
> False
>
> While I was at it, I also added a nice repr. Would this group be
> interested in a patch, or is this not interesting?
>
>    
Sounds good to me. Could you post the patch to http://bugs.python.org 
please.

Michael Foord


> Thanks,
>
> Van
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk
>    


-- 
http://www.ironpythoninaction.com/



More information about the Python-Dev mailing list