logo

Функция isinstance() на Python

Функцията isinstance() на Python се използва за проверка дали дадения обект е екземпляр на този клас. Ако обектът принадлежи към класа, той връща True. В противен случай връща False. Той също така връща true, ако класът е подклас.

Функцията isinstance() приема два аргумента object и classinfo и връща True или False. Сигнатурата на функцията е дадена по-долу.

Синтаксис:

 isinstance(object, classinfo) 

Параметри

обект: Това е обект от тип string, int, float, long или персонализиран.

информация за класа: Име на класа.

Връщане

Връща булево значение True или False.

Нека видим някои примери за функция isinstance(), за да разберем нейната функционалност.

Примери за Python Isinstance():

Ние използваме функцията isinstance(), за да проверим дали различните променливи са екземпляри на техните отделни типове данни или класове.

1. Цяло число

Код

равенство на java обекти
 # Check if an integer is an int n = 100 print(isinstance(n, int)) 

Изход:

 True 

2. Поплавък

Код

семантична грешка
 # Check if a float is a float pi = 3.14159 print(isinstance(pi, float)) 

Изход:

 True 

3. Низ

Код

 # Check if a string is a string name = 'Johnny' print(isinstance(name, str)) 

Изход:

 True 

4. Списък

Код

 # Check if a list is a list colours = ['blue', 'black', 'brown'] print(isinstance(colours, list)) 

Изход:

 True 

5. Речник

Код

 # Check if a dictionary is a dict person = {'name': 'Ayan', 'age': 30} print(isinstance(person, dict)) 

Изход:

 True 

6. Кортеж

Код

 # Check if a tuple is a tuple point = (1, 5) print(isinstance(point, tuple)) 

Изход:

 True 

7. Комплект

Код

 # Check if a set is a set digits = {1, 2, 3, 4,5,6,7,8} print(isinstance(digits, set)) 

Изход:

python сортиран кортеж
 True 

8. Клас

Код

 # Check if a custom class instance is an instance of that class class Bike: pass my_bike = Bike() print(isinstance(my_bike, Bike)) 

Изход:

 True 

Нека видим още няколко примера за функцията isinstance(), за да разберем нейната функционалност.

Пример 1 за функцията isinstance() на Python

Тук предаваме обект и клас на функцията, която връща True само ако обектът принадлежи към класа. Вижте примера по-долу.

Код

 # Python isinstance() function example class Student: id = 101 name = 'John' def __init__(self, id, name): self.id=id self.name=name student = Student(1010,'John') lst = [ 12,34,5,6,767 ] # Calling function print(isinstance(student, Student)) # isinstance of Student class print(isinstance(lst, Student)) 

Изход:

фирма срещу компания
 True False 

Python функция isinstance() Пример 2

isinstance() може да се използва за проверка при случайност, че даден обект е екземпляр на клас, който изпълнява специфичен интерфейс. Можем да характеризираме интерфейса като клас, който определя набор от техники, които различните класове изпълняват.

Код

 # Python isinstance() function example class Animal: def speak(self): raise NotImplementedError class Dog(Animal): def speak(self): return 'Woof!' class Cat(Animal): def speak(self): return 'Meow!' def make_animal_speak(animal): if isinstance(animal, Animal): return animal.speak() else: raise ValueError('Object is not an Animal') my_dog = Dog() my_cat = Cat() print(make_animal_speak(my_dog)) print(make_animal_speak(my_cat)) 

Изход:

 'Woof!' 'Meow!' 

Python функция isinstance() Пример 3

Тази функция също връща True, ако обектът е от подклас и класът е родителски клас. Вижте как работи в примера по-долу.

Код

 # Python isinstance() function example # Declaring variables class NumericList(list): def __init__(self): return None num = NumericList() # Calling function print(isinstance(num, NumericList)) # True print(isinstance(num, list)) # True 

Изход:

 True True 

Заключение:

В заключение, функцията isinstance() е полезна вградена функция на Python, която ни позволява да проверим дали даден обект е екземпляр на предварително дефиниран клас или подклас. Това може да бъде особено ценно, когато работите с код, който включва различни типове данни, или докато пишете библиотеки или API, които трябва да се справят с много типове вход. Чрез използването на isinstance() може да се гарантира, че нашият код действа точно за различни типове вход и е по-енергичен като цяло.