duck typing at will

Jose Mora trylks at gmail.com
Tue Dec 30 13:42:11 EST 2008


Duck typing is called that way because "If it looks like a duck and
quacks like a duck, it must be a duck." I think it would be good to
have also "If the programmer wants to deal with it like a duck, it
must be a duck"

I mean, some tasks are rather boring in python when compared with php,
for example, let's imagine we have a dictionary that contains
dictionaries that contain the times that a key appears. We, or at
least I, would like to write something as short as:

dict[k1][k2] += 1

However we will have to do a longer code (this is the smallest code I
could come up with):

    dict = {}
    if not k1 in dict:
      dict[k1] = {}
    if not k2 in dict[k1]:
      dict[k1][k2] = 0
    dict[k1][k2] += 1

I know it is not the Apocalypse nor something really important when
compared with other things, but maybe it would be better if it wasn't
necessary to declare the variables when they are built-in types or to
initialize the keys in a dictionary, having special values (the
identity element of the operation that causes the initialization) to
initialize when it has not been done, initializing with the most
general type that supports the operation that causes the
initialization, casting to other type if necessary after that.

This is just an idea, maybe I'm not the first one suggesting it, or
maybe it is completely impossible to implement it because it would
require deep changes in python, but I wanted to discuss it.

Best regards.



More information about the Python-list mailing list