__getattr__ on non-instantiated class

Fredp federico.pelloni at gmail.com
Wed May 3 18:32:03 CEST 2006


Larry Bates ha scritto:

> Fredp wrote:
> > Hi
> > I was wondering if it is possible to have the various magic methods,
> > mainly __getattr__ and __setattr__, and @property attributes called
> > when accessing the attribute of a non-intantiated class.
> >
> > Imagin something like this:
> > #####
> > class MyClass:
> >      @property
> >      def prop(self):
> >            print "Accessed"
> >            return "ABCD"
> >
> > print MyClass.prop
> > #####
> > having it printing:
> > #####
> > Accessed
> > ABCD
> > #####
> >
> > Thanks very much
> >
> Looks like you want Python to execute a method on an uninstantiated
> class.  I can't imagine how you would use such a thing.  Can you
> give us a real-life "use case"?
>
> This produces the output you want:
>
> m=MyClass()
> print m.prop()
>
> -Larry Bates
I have something like a simple ORM which objects haven't a fixed number
of fields, and I need to have properties (or methods) for each of them,
but currently it is more comfortable for me to use uninstantiaded
classes (as someway SQLObject does).
I guess I'd better taking another approach to him, maybe using
something from ASPN cookbook :-\




More information about the Python-list mailing list