Dale Strickland-Clark wrote:
> Thanks for the answers. I am informed but I don't feel enlightened. 
> 
> It does strike me as odd that an apparently empty subclass should add extra
> function to the base class. 
> 
> Not at all obvious.

Yes. As said, there is missing a __builtin__.Object

object is not an "empty class", but the base builtin-type:

>>> isinstance(int,object)
True

built-in type instances are basically read-only because if ...


>>> (1).spam=1
Traceback (most recent call last):
  File "<interactive input>", line 1, in ?
AttributeError: 'int' object has no attribute 'spam'
>>> 


..would work, that would be very strange. 
Maybe in a mud place language like Ruby, where you can jam and scribble 
everywhere in the system and in builtins, such things are possible.  


I'd propose to add something trivial like


class Object(object):
   def __init__(self,_d={},**kwargs):
       kwargs.update(_d)
       self.__dict__=kwargs 
   ...

to Python. I use such empty (common) class since all time I can think of - and 
frequently. 
If there would be a common such Empty class in Python you'd have a lot of 
advantanges. From ad-hoc instances, "OO-dicts" to reliable pickling of bunches 
of variables etc.


Robert


-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to