type(), isinstance()

Функція type() повертає тип переданого аргументу, з її допомогою можна перевірити, чи належить аргумент того чи іншого типу:

a = 10
b = [1,2,3]
type(a) == int    # True
type(b) == list   # True
type(a) == float  # False

Функція isinstance() спеціально створена для перевірки належності даних певного класу (типу даних):

isinstance(a,int)    # True
isinstance(b,list)   # True
isinstance(b,tuple)  # False
c = (4,5,6)
isinstance(c,tuple)  # True

Крім того, isinstance() порівняно з type() дозволяє перевірити дане на приналежність хоча б одному типу з кортежу, переданого як другий аргумент:

isinstance(a,(float, int, str))    # True
isinstance(a,(list, tuple, dict))  # False

Інша відмінність isinstance(). Ця функція підтримує спадкування. Для isinstance() екземпляр похідного класу також є екземпляром базового класу. Для type() це не так:

class A (list):
... pass
...

a = A()
type(a) == list     # False
type(a) == A        # True
isinstance(a,A)     # True
isinstance(a,list)  # True

Last updated