logo

Funkce isinstance() v Pythonu

Funkce isinstance() Pythonu se používá ke kontrole, zda je daný objekt instancí dané třídy. Pokud objekt patří do třídy, vrátí True. Jinak vrátí False. Vrátí také hodnotu true, pokud je třída podtřídou.

Funkce isinstance() přebírá dva argumenty object a classinfo a vrací buď True nebo False. Podpis funkce je uveden níže.

Syntax:

 isinstance(object, classinfo) 

Parametry

objekt: Jedná se o objekt typu string, int, float, long nebo custom.

info o třídě: Jméno třídy.

Vrátit se

Vrací logickou hodnotu True nebo False.

Podívejme se na několik příkladů funkce isinstance(), abychom porozuměli její funkčnosti.

Příklady Python Isinstance():

Používáme funkci isinstance() ke kontrole, zda různé proměnné jsou instancemi jejich samostatných datových typů nebo tříd.

1. Celé číslo

Kód

Intellij idea vs eclipse
 # Check if an integer is an int n = 100 print(isinstance(n, int)) 

Výstup:

 True 

2. Plovoucí

Kód

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

Výstup:

 True 

3. Řetězec

Kód

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

Výstup:

 True 

4. Seznam

Kód

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

Výstup:

 True 

5. Slovník

Kód

třídit pole java
 # Check if a dictionary is a dict person = {'name': 'Ayan', 'age': 30} print(isinstance(person, dict)) 

Výstup:

 True 

6. Tuple

Kód

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

Výstup:

je kat timpf právnička
 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ýstup:

 True 

8. Třída

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ýstup:

 True 

Podívejme se na několik dalších příkladů funkce isinstance(), abychom porozuměli její funkčnosti.

Příklad funkce Python isinstance() 1

Zde předáváme objekt a třídu funkci, která vrací True pouze v případě, že objekt patří do třídy. Viz níže uvedený příklad.

Kód

nahradit veškerou javu
 # 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ýstup:

 True False 

Příklad funkce Python isinstance() 2

isinstance() lze použít ke kontrole nepravděpodobnosti, že objekt je instancí třídy, která provádí specifické rozhraní. Rozhraní můžeme charakterizovat jako třídu, která určuje spoustu technik, které různé třídy provádějí.

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ýstup:

 'Woof!' 'Meow!' 

Příklad funkce Python isinstance() 3

Tato funkce také vrací True, pokud je objekt podtřídou a třída je nadřazenou třídou. Podívejte se, jak to funguje v níže uvedeném příkladu.

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ýstup:

 True True 

Závěr:

Na závěr, funkce isinstance() je užitečná vestavěná funkce Pythonu, která nám umožňuje zkontrolovat, zda je objekt instancí předdefinované třídy nebo podtřídy. To může být zvláště cenné při práci s kódem, který obsahuje různé datové typy, nebo při psaní knihoven nebo rozhraní API, které potřebují pracovat s velkým množstvím typů vstupů. Využitím isinstance() lze zaručit, že náš kód funguje přesně pro různé typy vstupů a je obecně vzato ráznější.