Какие функции, методы можно использовать для определения типа сущности?

1. type() — отдает тип объекта над которым мы работаем.

type(3)
<class 'int'>

type(False) 
<class 'bool'>

type(lambda :print("Hi"))
<class 'function'>

2. isinstance()

Функция принимает 2 параметра. Если значение (первый параметр) является типом из второго параметра, то функция вернет True, иначе вернет False.

isinstance(3,int)
True

isinstance((1),tuple)
False

isinstance((1,),tuple)
True

3. issubclass()

Функция принимает 2 параметка, оба параметра должны быть классами. Если первый унаследован от второго, то функция вернет True, иначе False

class A: pass

class B(A): pass

issubclass(B,A)
True

issubclass(A,B)
False