Am 18.04.2017 um 13:17 schrieb Peter Otten:
Thomas Güttler wrote:

I would like to have read-only class properties in Python.

I found this
http://stackoverflow.com/questions/128573/using-property-on-classmethods
But there are a lot of discussions of things which I don't understand.

I want to be a user of class properties, not an implementer of the
details.

I found this: https://pypi.python.org/pypi/classproperty

But above release is more then ten years old. I am unsure if it's dead or
mature.

I am using Python 2.7 and attribute getters would be enough, no attribute
setter is needed.

My use case is configuration, not fancy algorithms or loops.

Like this?

$ cat classproperty.py
class classproperty(object):
    def __init__(self, fget):
        self.fget = fget
    def __get__(self, inst, cls):
        return self.fget(cls)


class Foo(object):
    FOO = 42
    @classproperty
    def foo(cls):
        return cls.FOO

print "Foo.foo =", Foo.foo
print "Foo().foo =", Foo().foo
$ python2 classproperty.py
Foo.foo = 42
Foo().foo = 42

Nice, if it is that simple.

Is there a reason why this is not in the standard library?

Regards,
  Thomas Güttler



--
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