logo

Funkcia isinstance() Pythonu

Funkcia Python isinstance() sa používa na kontrolu, či daný objekt je inštanciou danej triedy. Ak objekt patrí do triedy, vráti hodnotu True. V opačnom prípade vráti hodnotu False. Tiež vráti hodnotu true, ak je trieda podtriedou.

Funkcia isinstance() berie dva argumenty object a classinfo a vracia buď True alebo False. Podpis funkcie je uvedený nižšie.

Syntax:

 isinstance(object, classinfo) 

Parametre

objekt: Je to objekt typu string, int, float, long alebo custom.

info o triede: Názov triedy.

Návrat

Vracia boolovskú hodnotu True alebo False.

Pozrime sa na niekoľko príkladov funkcie isinstance(), aby sme pochopili jej funkčnosť.

Príklady Python Isinstance():

Funkciu isinstance() používame na kontrolu, či rôzne premenné sú inštanciami ich samostatných dátových typov alebo tried.

1. Celé číslo

kód

diagram tried java
 # Check if an integer is an int n = 100 print(isinstance(n, int)) 

Výkon:

 True 

2. Plávať

kód

 # Check if a float is a float pi = 3.14159 print(isinstance(pi, float)) 

Výkon:

 True 

3. Šnúrka

kód

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

Výkon:

 True 

4. Zoznam

kód

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

Výkon:

 True 

5. Slovník

kód

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

Výkon:

funkcia python chr
 True 

6. Tuple

kód

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

Výkon:

 True 

7. Nastavte

kód

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

Výkon:

 True 

8. Trieda

kód

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

Výkon:

 True 

Pozrime sa na niekoľko ďalších príkladov funkcie isinstance(), aby sme pochopili jej funkčnosť.

Príklad funkcie Python isinstance() 1

Tu odovzdávame objekt a triedu funkcii, ktorá vráti True, iba ak objekt patrí do triedy. Pozrite si príklad nižšie.

csma a csma cd

kód

 # 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)) 

Výkon:

 True False 

Príklad funkcie Python isinstance() 2

isinstance() možno použiť na kontrolu náhody, že objekt je inštanciou triedy, ktorá vykonáva špecifické rozhranie. Rozhranie môžeme charakterizovať ako triedu, ktorá určuje množstvo techník, ktoré rôzne triedy vykonávajú.

kód

 # 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)) 

Výkon:

 'Woof!' 'Meow!' 

Príklad funkcie Python isinstance() 3

Táto funkcia tiež vráti hodnotu True, ak je objekt podtriedy a trieda je rodičovskou triedou. Pozrite sa, ako to funguje v nižšie uvedenom príklade.

kód

 # 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 

Výkon:

 True True 

Záver:

Na záver, funkcia isinstance() je užitočná vstavaná funkcia Pythonu, ktorá nám umožňuje skontrolovať, či je objekt inštanciou preddefinovanej triedy alebo podtriedy. To môže byť obzvlášť cenné pri práci s kódom, ktorý obsahuje rôzne typy údajov, alebo pri písaní knižníc alebo rozhraní API, ktoré sa musia vysporiadať s veľkým množstvom typov vstupov. Použitím isinstance() je možné zaručiť, že náš kód funguje presne pre rôzne typy vstupov a je vo všeobecnosti ráznejší.