Hi. One of the things I'd like to do with Python is find a way to consistently implement Smalltalk's "loose methods". This is a capability whereby additional methods can be added dynamically to existing classes.
In some respects, it's possible with Python. While "object" cannot be touched, it's possible to define class MutableObject( object ) : pass ; and derive subclasses from MutableObject instead of object. Thereafter, for instance, if devising a class class Foo( MutableObject ) : isFoo = True ; ... you can also put in its module MutableObject.isFoo = False ; So, at least for the inheritance hierarchy descending from MutableObject, for an arbitrary object instance x, x.isFoo will return whether it's a Foo or not, effectively although not transparently extending the builtin type(.). Like, then, what of other classes which descend from object and not MutableObject? You'd love to be able to set methods and attributes within them. Can you? These provide on-the-spot extensions of their capability without having to subclass them (not such a big deal) or get everyone to use the new subclass (a very big deal). Comments? Suggestions? Thanks, -- Jan -- http://mail.python.org/mailman/listinfo/python-list