code: def _attribute(permission='rwd', **kwds):
      
      classname, classdict = class_space()
      def _property(attrname, default):
          propname, attrname = attrname, mangle(classname, attrname)
          fget, fset, fdel, doc = None, None, None, propname
          if 'r' in permission:
              def fget(self):
                  value = default
                  try: value = getattr(self, attrname)
                  except AttributeError: setattr(self, attrname, default)
                  return value
          if 'w' in permission:
              def fset(self, value):
                  setattr(self, attrname, value)
          if 'd' in permission:
              def fdel(self): 
                  try: delattr(self, attrname)
                  except AttributeError: pass
                  # calling fget can restore this attribute, so remove property 
                  delattr(self.__class__, propname)
          return property(fget=fget, fset=fset, fdel=fdel, doc=doc)
          
      for attrname, default in kwds.items():
          classdict[attrname] = _property(attrname, default)
docs: returns one property for each (key,value) pair in kwds;
         each property provides the specified level of access(permission):
             'r': readable, 'w':writable, 'd':deletable