title: Storing @property functions
body: <p>Is it possible to store a <code>@property</code> function inside a variable?</p>
  
  <p>Imagine we have the following code:</p>
  
  <pre><code>class I:
    def __init__(self):
      self.i = 0
  
    def get_i(self):
      return self.i
  
  a = I()
  
  f_i = a.get_i
  
  print(f_i())
  
  a.i = 3
  
  print(f_i())
  </code></pre>
  
  <p>I save the function get_i inside a variable and use it. The output is as expected:</p>
  
  <pre><code>0
  3
  </code></pre>
  
  <p>Now lets look at the same code, but this time with an <code>@property</code> function:</p>
  
  <pre><code>class I:
    def __init__(self):
      self.i = 0
  
    @property
    def get_i(self):
      return self.i
  
  a = I()
  
  f_i = a.get_i
  </code></pre>
  
  <p>Now <code>a.get_i</code> is not the function anymore (It is the value 0). Is there any way to still store the function inside the f_i variable?</p>