docstr: :param scale float: scale parameter
  :param df float: degrees of freedom
docstr_tok: [":","param","scale","float",":","scale","parameter",":","param","df","float",":","degrees","of","freedom"]
code: def __init__(
      self,
      scale: ConstantOrFunction = 1.0,
      df: float = 3.0,
      scale_lower_bound: Optional[float] = None,
      **kwargs: Any,
  ) -> None:
      """
      :param scale float: scale parameter
      :param df float: degrees of freedom
      """
      super().__init__(**kwargs)
      self.df = df
      self.scale_lower_bound = _lower_bound(scale_lower_bound)
      self.scale = prepare_parameter_or_function(
          scale, lower_bound=self.scale_lower_bound
      )
  
imports: from math import sqrt
  from typing import Any, Callable, Optional
  import numpy
  import tensorflow
  from check_shapes import check_shapes, inherit_check_shapes
  from ..None import logdensities
  from ..base import MeanAndVariance, TensorType
  from ..config import default_likelihood_positive_minimum
  from ..utilities.parameter_or_function import ConstantOrFunction, ParameterOrFunction, evaluate_parameter_or_function, prepare_parameter_or_function
  from .base import ScalarLikelihood
  from .utils import inv_probit
label_desc: Use image node_id 1 to create a new StudentT object from inherited base classes: ScalarLikelihood with example: obj = StudentT(scale, df, scale_lower_bound)