title: python __getattribute__ override and @property decorator
body: <p>I had to write a class of some sort that overrides <code>__getattribute__</code>. 
  basically my class is a container, which saves every user-added property to <code>self._meta</code> which is a dictionary. </p>
  
  <pre><code>class Container(object):
      def __init__(self, **kwargs):
          super(Container, self).__setattr__('_meta', OrderedDict())
          #self._meta = OrderedDict()
          super(Container, self).__setattr__('_hasattr', lambda key : key in self._meta)
  
          for attr, value in kwargs.iteritems():
              self._meta[attr] = value
  
      def __getattribute__(self, key):
          try:
              return super(Container, self).__getattribute__(key)
          except:
              if key in self._meta : return self._meta[key]
              else:
                  raise AttributeError, key
  
      def __setattr__(self, key, value):
          self._meta[key] = value
  #usage:
  &gt;&gt;&gt; a = Container()
  &gt;&gt;&gt; a
  &lt;__main__.Container object at 0x0000000002B2DA58&gt;
  &gt;&gt;&gt; a.abc = 1 #set an attribute
  &gt;&gt;&gt; a._meta
  OrderedDict([('abc', 1)]) #attribute is in ._meta dictionary
  </code></pre>
  
  <p>I have some classes which inherit <code>Container</code> base class and some of their methods have @property decorator.</p>
  
  <pre><code>class Response(Container):
      @property
      def rawtext(self):
          if self._hasattr("value") and self.value is not None:
              _raw = self.__repr__()
              _raw += "|%s" %(self.value.encode("utf-8"))
  
              return _raw
  </code></pre>
  
  <p>problem is that <code>.rawtext</code> isn't accessible. (I get attributeerror.) every key in <code>._meta</code> is accessible, every attributes added by <code>__setattr__</code> of <code>object</code> base class is accessible, but method-to-properties by @property decorator isn't. I think it has to do with my way of overriding <code>__getattribute__</code> in <code>Container</code> base class. What should I do to make properties from <code>@property</code> accessible?</p>