Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #105373

Re: Static caching property

From "Joseph L. Casale" <jcasale@activenetwerx.com>
Newsgroups comp.lang.python
Subject Re: Static caching property
Date 2016-03-21 16:49 +0000
Message-ID <mailman.447.1458579150.12893.python-list@python.org> (permalink)
References <35a5c4206a0c40e584d62d5d37b068b3@activenetwerx.com> <56f0230e$0$1616$c3e8da3$5496439d@news.astraweb.com>

Show all headers | View raw


> I think Joseph is using "static" in the Java sense of being associated with
> the class rather than an instance. (In Java, members of classes must be
> known at compile-time.)

Yup, so a single value on the class itself, not instance specific.

> But what you can do is have the property refer to a class attribute:
> 
> 
> py> class Test(object):
> ...     _private = 999
> ...     @property
> ...     def x(self):
> ...             return type(self)._private
> ...     @x.setter
> ...     def x(self, value):
> ...             type(self)._private = value
> ...
> py> a = Test()
> py> b = Test()
> py> c = Test()
> py> a.x
> 999
> py> b.x = 50
> py> c.x
> 50
> py> a.x
> 50

Right, but _private refers to an api call that is expensive and may not even be accessed,
so while I may new up three instances of Test across a, b and c, if none of those end up
accessing var x, it shouldn't get fetched. Without some deferred execution, if the value
of _private is a callable whose return value is what I am interested in, it gets invoked the
moment the class is compiled.

In the non static sense this is trivial to accomplish with the descriptor protocol, I am just not
clear for the static sense.

Thanks Ian and Steven,
jlc

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: Static caching property Ian Kelly <ian.g.kelly@gmail.com> - 2016-03-21 10:15 -0600
  Re: Static caching property Steven D'Aprano <steve@pearwood.info> - 2016-03-22 03:36 +1100
    Re: Static caching property "Joseph L. Casale" <jcasale@activenetwerx.com> - 2016-03-21 16:49 +0000
    Re: Static caching property Chris Angelico <rosuav@gmail.com> - 2016-03-22 03:54 +1100
    Re: Static caching property "Joseph L. Casale" <jcasale@activenetwerx.com> - 2016-03-21 17:03 +0000
    Re: Static caching property Ian Kelly <ian.g.kelly@gmail.com> - 2016-03-21 11:44 -0600
    Re: Static caching property Ethan Furman <ethan@stoneleaf.us> - 2016-03-21 10:45 -0700
    Re: Static caching property Ian Kelly <ian.g.kelly@gmail.com> - 2016-03-21 11:48 -0600
      Re: Static caching property Steven D'Aprano <steve@pearwood.info> - 2016-03-22 11:05 +1100
        Re: Static caching property Chris Angelico <rosuav@gmail.com> - 2016-03-22 11:15 +1100
        Re: Static caching property Ian Kelly <ian.g.kelly@gmail.com> - 2016-03-22 07:30 -0600

csiph-web