Am 20.04.2017 um 14:26 schrieb Steven D'Aprano:
On Thu, Apr 20, 2017 at 10:39:57AM +0200, Thomas Güttler wrote:

- its hard to get classproperty to work right.

What is "righ"?

In my case a read-only classproperty is enough. Inheritance should be
supported.

I don't have a usecase for a setter.

The standard library is not just for you :-)

If Peter's solution is "good enough" for you, then great, go ahead and
use it. But beware: of the two implementations I know, you cannot have
both:

- access from instances;
- read-only property;

You can have access from instances, but then the classproperty is not
read-only. Or you can have read-only access, but only from the class
object.

I can't follow what you. What do you mean with "... is not read-only".

This snippet works fine:

{{{

class classproperty(object):
    def __init__(self, f):
        self.f = f
    def __get__(self, obj, owner):
        return self.f(owner)

class Foo(object):
    @classproperty
    def my_prop(cls):
        return 42

print Foo.my_prop

print Foo().my_prop
}}}

Regards,
  Thomas

--
Thomas Guettler http://www.thomas-guettler.de/
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to