what *is* a class?

Douglas Zongker dougz at cs.washington.edu
Sun Jun 16 21:21:14 EDT 2002


Uwe Mayer <merkosh at hadiko.de> wrote:
: i've got an object 'Group'. i instanciate it by calling, f.e.
: g = Group()

: what actually does Group() return and is there any way to get hold of 
: that again?

"Group()" creates a new object which is an instance of the class
Group.  It calls the object's initializer ("__init__" method), then
returns the newly created object.

: i want to write a method which returns the instance, so that f.e. the 
: following is possible:
:   g = Group()
:   g2 = g.foobar()
:   g2 is g
: so that g2 is identical to g.
: any idea?

    class Group:
        def __init__( self ):
            print 'creating instance'

        def foo( self ):
            print 'in the foo method'
            return self

    >>> g = Group()
    creating instance
    >>> g2 = g.foo()
    in the foo method
    >>> g2 is g
    1
    >>>		

Note that there's usually no reason for a method (such as "foo") to
return the self object, because the caller should already have the
object to call the method in the first place.  I could leave "return
self" out of the definition of "foo", and just write:

    g = Group()
    g.foo()
    g2 = g

The result would be the same.

dz


 



More information about the Python-list mailing list