code: def _get(self, obj):
          ''' Internal implementation of instance attribute access for the
          ``BasicPropertyDescriptor`` getter.
  
          If the value has not been explicitly set by a user, return that
          value. Otherwise, return the default.
  
          Args:
              obj (HasProps) : the instance to get a value of this property for
  
          Returns:
              object
  
          Raises:
              RuntimeError
                  If the |HasProps| instance has not yet been initialized, or if
                  this descriptor is on a class that is not a |HasProps|.
  
          '''
          if not hasattr(obj, '_property_values'):
              raise RuntimeError("Cannot get a property value '%s' from a %s instance before HasProps.__init__" %
                                 (self.name, obj.__class__.__name__))
  
          if self.name not in obj._property_values:
              return self._get_default(obj)
          else:
              return obj._property_values[self.namef _get(self, obj):
          ''' Internal implementation of instance attribute access for the
          ``BasicPropertyDescriptor`` getter.
  
          If the value has not been explicitly set by a user, return that
          value. Otherwise, return the default.
  
          Args:
              obj (HasProps) : the instance to get a value of this property for
  
          Returns:
              object
  
          Raises:
              RuntimeError
                  If the |HasProps| instance has not yet been initialized, or if
                  this descriptor is on a class that is not a |HasProps|.
  
          '''
          if not hasattr(obj, '_property_values'):
              raise RuntimeError("Cannot get a property value '%s' from a %s instance before HasProps.__init__" %
                                 (self.name, obj.__class__.__name__))
  
          if self.name not in obj._property_values:
              return self._get_default(obj)
          else:
              return obj._property_values[self.name]
docs: Internal implementation of instance attribute access for the
          ``BasicPropertyDescriptor`` getter.
  
          If the value has not been explicitly set by a user, return that
          value. Otherwise, return the default.
  
          Args:
              obj (HasProps) : the instance to get a value of this property for
  
          Returns:
              object
  
          Raises:
              RuntimeError
                  If the |HasProps| instance has not yet been initialized, or if
                  this descriptor is on a class that is not a |HasProps|.