class_docstr: Accept values that are instances of any class.
  
  .. note::
      This is primarily useful for validation purpose. Non-serializable
      objects will fail regardless during the serialization process.
class_docstr_tok: ["Accept","values","that","are","instances","of","any","class",".","..","note",":",":","This","is","primarily","useful","for","validation","purpose",".","Non-serializable","objects","will","fail","regardless","during","the","serialization","process","."]
code: def __init__(
      self,
      instance_type: type[T] | Callable[[], type[T]] | str,
      default: Init[T] = Undefined,
      help: str | None = None,
  ):
      if not (
          isinstance(instance_type, (type, str))
          or callable(instance_type)
      ):
          raise ValueError(
              f"expected a type, fn() -> type, or string, got {instance_type}"
          )
  
      if isinstance(instance_type, type):
          self._assert_type(instance_type)
  
      self._instance_type = instance_type
  
      super().__init__(default=default, help=help)
  
imports: from __future__ import annotations
  import logging
  import types
  from importlib import import_module
  from typing import Any, Callable, Generic, TypeVar
  from ..has_props import HasProps
  from ..serialization import Serializable
  from ._sphinx import model_link, property_link, register_type_link
  from .bases import Init, Property
  from .singletons import Undefined
label_desc: Use image node_id 1 to create a new Object object from inherited base classes: Property with example: obj = Object(instance_type, default, help)