Built-in non-data version of property?
<pre><code>class Books():
    def __init__(self):
        self.__dict__['referTable'] = 1

    @property
    def referTable(self):
        return 2

book = Books()
print(book.referTable)
print(book.__dict__['referTable'])
</code></pre>

<p>Running:</p>

<pre><code>vic@ubuntu:~/Desktop$ python3 test.py 
2
1
</code></pre>

<p><code>Books.referTable</code> <a href="http://docs.python.org/reference/datamodel.html#invoking-descriptors" rel="nofollow">being a data descriptor</a> is not shadowed by <code>book.__dict__['referTable']</code>:</p>

<blockquote>
  <p>The <code>property()</code> function is implemented as a data descriptor.
  Accordingly, instances cannot override the behavior of a property.</p>
</blockquote>

<p>To shadow it, instead of <code>property</code> built-in descriptor i must use my own descriptor. Is there a built in descriptor like <code>property</code> but which is non-data?</p>
