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ší.