Bruce wrote:

>>>> class A:
> ...  def __init__(self):
> ...   self.t = 4
> ...   self.p = self._get_p()
> ...  def _get_p(self):
> ...   return self.t
> ...
>>>> a = A()
>>>> a.p
> 4
>>>> a.t += 7
>>>> a.p
> 4
> 
> I would like to have it that when I ask for p, method _get_p is always
> called so that attribute can be updated. How can I have this
> functionality here? thanks

You need to use a property, there are several possibilities to do so, a
common idiom is this:


class A(object):  # must be newstyle

   def __init__(self):
       self._p = 6


   def get_p(self):
       return self._p


   def set_p(self, v):
       self._p = v


   p = property(get_p, set_p)


Diez
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to