In article <[EMAIL PROTECTED]>,
 Larry Bates <[EMAIL PROTECTED]> wrote:

> Because datetime is a new-style class:

Ah.

> The Constructor __new__
> 
> If you are like me, then you probably always thought of the __init__ method 
> as
> the Python equivalent of what is called a constructor in C++. This isn't the
> whole story.
> 
> When an instance of a class is created, Python first calls the __new__ method 
> of
> the class. __new__ is a static method that is called with the class as its 
> first
> argument. __new__ returns a new instance of the class.
> 
> The __init__ method is called afterwards to initialize the instance. In some
> situations (think "unplickling"!), no initialization is performed. Also,
> immutable types like int and str are completely constructed by the __new__
> method; their __init__ method does nothing. This way, it is impossible to
> circumvent immutability by explicitly calling the __init__ method after
> construction.
> 
> 
> I think what you wanted was:
> 
> >>> class ts(datetime):
> ...   def __new__(self): pass
> ...   
> >>> a=ts()
> 
> -Larry

Thanks!

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

Reply via email to