class definition
Miles
semanticist at gmail.com
Wed May 7 20:53:06 EDT 2008
On Wed, May 7, 2008 at 7:40 PM, Yves Dorfsman <yves at zioup.com> wrote:
> Does it make a difference if you put subclass object or not ?
>
> What is the difference between c1 and c2 here:
>
> class c1:
> pass
>
> class c2(object):
> pass
>>> type(c1)
<type 'classobj'>
>>> type(c1())
<type 'instance'>
>>> type(c2)
<type 'type'>
>>> type(c2())
<class '__main__.c2'>
In Python 2.2, classes and types were unified. If a class inherits
from object (or any other built-in), it is considered a "new-style"
class; otherwise, it is an old-style (or classic) class. There are
some differences in their behavior; most notably, descriptors
(computer properties) will not work with old-style classes. Old-style
classes will go away in Python 3 (I think), and all classes will have
object as a base.
An introduction to new-style classes:
http://www.cafepy.com/article/python_types_and_objects/python_types_and_objects.html
A guide to descriptors:
http://users.rcn.com/python/download/Descriptor.htm
The reference manual on the distinction:
http://docs.python.org/ref/node33.html
The technical explanation:
http://www.python.org/download/releases/2.2.3/descrintro/
-Miles
More information about the Python-list
mailing list