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. -- http://mail.python.org/mailman/listinfo/python-list