I'm probably in over my head here, but I really want to know how this works, and I hope someone will be willing to take a moment to explain it...

I'm making a few classes for a very simple ORM, where the classes reflect objects that I'm persisting via pickle. I'd like to add and delete instances via add() and delete() classmethods, so that the classes can keep track of the comings and goings of their instances.

My main question is, how can I abstract this classmethod behavior for several classes, either into a metaclass, or a super class? I've done some very scary reading, and some fruitless experimentation, and am over my head. I know the answer is probably "do something else entirely", but I'd really like to know how this is supposed to work. What I'd like is a Model class, which provides an add() classmethod like this:

class Model(object):
@classmethod
def add(cls, *args)
    inst = cls(args)
    cls.instances.append(inst)

Then, say, a File class:

class File():
    # inherit from Model, or use Model as a metaclass?
    instances = []
    def __init__(self, *args)
        self.filename = args[0]
        self.keyword = args[1]

The desired behavior, of course, is this:

File.add('somefilename','keywordforthisfile')

and to be able to extend this behavior to other classes.

Any pointers would be much appreciated...

Eric


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to