[Python-Dev] defaultdict proposal round three
Giovanni Bajo
rasky at develer.com
Tue Feb 21 08:51:03 CET 2006
Raymond Hettinger wrote:
>> - It would be unwise to have a default value that would be called if
>> it was callable: what if I wanted the default to be a class instance
>> that happens to have a _call_ method for unrelated reasons?
>> Callability is an elusive propperty; APIs should not attempt to
>> dynamically decide whether an argument is callable or not.
>
> That makes sense, though it seems over-the-top to need a zero-factory
> for a multiset.
>
> An alternative is to have two possible attributes:
> d.default_factory = list
> or
> d.default_value = 0
> with an exception being raised when both are defined (the test is
> done when the
> attribute is created, not when the lookup is performed).
What does this buy over just doing:
d.default_factory = lambda: 0
which is also totally unambiguous wrt the semantic of usage of the default
value (copy vs deepcopy vs whatever)? Given that the most of the default values
I have ever wanted to use do not even require a lambda (list, set, int come to
mind).
--
Giovanni Bajo
More information about the Python-Dev
mailing list