On 29 May 2013 18:51, "Croepha" <croe...@gmail.com> wrote:
>
> Is there anything like this in the standard library?
>
> class AnyFactory(object):
> def __init__(self, anything):
> self.product = anything
> def __call__(self):
> return self.product
> def __repr__(self):
> return "%s.%s(%r)" % (self.__class__.__module__, self.__class__.__name__,
self.product)
>
> my use case is:
collections.defaultdict(AnyFactory(collections.defaultdict(AnyFactory(None))))
>
> And I think lambda expressions are not preferable...
>
> I found itertools.repeat(anything).next and functools.partial(copy.copy,
anything)
>
> but both of those don't repr well... and are confusing...
>
> I think AnyFactory is the most readable, but is confusing if the reader
doesn't know what it is, am I missing a standard implementation of this?
>
>

Are you sure you don't want to use a lambda expression? They are pretty
pythonic.

none_factory = lambda: None
defaultdict_none_factory = lambda: defaultdict(none_factory)

collections.defaultdict(defaultdict_none_factory)

Just what are you trying to do?
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to