[Python-Dev] Requesting that a class be a new-style class

Nick Coghlan ncoghlan at iinet.net.au
Sun Feb 20 03:13:25 CET 2005

Guido van Rossum wrote:
>>>This is something I've typed way too many times:
>>>Py> class C():
>>>   File "<stdin>", line 1
>>>     class C():
>>>             ^
>>>SyntaxError: invalid syntax
>>>It's the asymmetry with functions that gets to me - defining a
>>>function with no arguments still requires parentheses in the
>>>definition statement, but defining a class with no bases requires the
>>>parentheses to be omitted.
> It's fine to fix this in 2.5. I guess I can add this to my list of
> early oopsies -- although to the very bottom. :-)
> It's *not* fine to make C() mean C(object). (We already have enough
> other ways to declaring new-style classes.)

Fair enough - the magnitude of the semantic difference between "class C:" and 
"class C():" bothered me a little, too. I'll just have to remember that I can 
put "__metaclass__ == type" at the top of modules :)


Nick Coghlan   |   ncoghlan at email.com   |   Brisbane, Australia

More information about the Python-Dev mailing list