class_docstr: A base class for Bokeh properties with simple get/set and serialization
  behavior.
class_docstr_tok: ["A","base","class","for","Bokeh","properties","with","simple","get\/set","and","serialization","behavior","."]
docstr: Internal implementation of instance attribute access for the
  ``PropertyDescriptor`` 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|.
code: def _get(self, obj: HasProps) -> T:
      """Internal implementation of instance attribute access for the
      ``PropertyDescriptor`` 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"):
          class_name = obj.__class__.__name__
          raise RuntimeError(
              f"Cannot get a property value {self.name!r} from a {class_name} instance before HasProps.__init__"
          )
  
      if self.name not in obj._property_values:
          return self._get_default(obj)
      else:
          return obj._property_values[self.name]
  
imports: from __future__ import annotations
  import logging
  from copy import copy
  from types import FunctionType
  from typing import TYPE_CHECKING, Any, Callable, Generic, TypeVar
  from ...util.deprecation import deprecated
  from .singletons import Undefined
  from .wrappers import PropertyValueColumnData, PropertyValueContainer
label_desc: Use image node_id 16 for calling the PropertyDescriptor obj's underlying member method code with example usage: obj._get(obj) and returns: self, obj