On Mon, 21 Jan 2008 17:38:10 -0200, Gabriel Genellina wrote: > En Mon, 21 Jan 2008 05:59:38 -0200, <[EMAIL PROTECTED]> escribi�: > >> Is there no way of adding a possible warning message (that obviously >> could be turned off) to warn users of possible problems linked to using >> mutable types as parameters? >> >> Seems to me this could save users a few minutes/hours of headaches and >> headscratching. (The biggest issue affecting new programmers these >> days!) > > Most objects are mutable, such warning would happen so often that would > become useless.
Not at all, for two reasons: (1) Using mutable defaults in function definitions is relatively unusual. Defaults like None, 0, 1 are far more common. (2) We can copy the behaviour of the warnings module. Possibly even use the warnings module. By default warnings are only shown once per session. > The only immutable objects are numbers, strings, tuples, None and a few > esoteric types; all other instances, including instances of all user > defined classes, are mutable unless explicitely their attributes are > read-only. It is true that Python doesn't have a cheap way of recognising mutable instances except by trying to mutate them. However, there is a case for having it issue a warning the first time in a session it spots a default list or dict, which would catch 99% of cases that newbies use a mutable default. Newbies being newbies, 30% of them will completely ignore the warning and bitch about the "bug", but that's better than the 80% that we have now :-) -- Steven -- http://mail.python.org/mailman/listinfo/python-list