Funkcja isinstance() w Pythonie służy do sprawdzania, czy dany obiekt jest instancją tej klasy. Jeśli obiekt należy do klasy, zwraca True. W przeciwnym razie zwraca False. Zwraca również wartość true, jeśli klasa jest podklasą.
Funkcja isinstance() przyjmuje dwa argumenty: obiekt i informacje o klasie i zwraca wartość True lub False. Poniżej podano sygnaturę funkcji.
Składnia:
isinstance(object, classinfo)
Parametry
obiekt: Jest to obiekt typu string, int, float, long lub niestandardowy.
Informacje o zajęciach: Nazwa klasy.
Powrót
Zwraca wartość logiczną True lub False.
Zobaczmy kilka przykładów funkcji isinstance(), aby zrozumieć jej funkcjonalność.
Przykłady Pythona Isinstance():
Używamy funkcji isinstance(), aby sprawdzić, czy różne zmienne są instancjami swoich odrębnych typów danych lub klas.
1. Liczba całkowita
Kod
przykłady drzew binarnych
# Check if an integer is an int n = 100 print(isinstance(n, int))
Wyjście:
True
2. Unosić się
Kod
# Check if a float is a float pi = 3.14159 print(isinstance(pi, float))
Wyjście:
True
3. Sznurek
Kod
# Check if a string is a string name = 'Johnny' print(isinstance(name, str))
Wyjście:
True
4. Lista
Kod
jak znaleźć ukryte aplikacje na Androidzie
# Check if a list is a list colours = ['blue', 'black', 'brown'] print(isinstance(colours, list))
Wyjście:
True
5. Słownik
Kod
# Check if a dictionary is a dict person = {'name': 'Ayan', 'age': 30} print(isinstance(person, dict))
Wyjście:
licznik mysqla
True
6. Krotka
Kod
# Check if a tuple is a tuple point = (1, 5) print(isinstance(point, tuple))
Wyjście:
True
7. Ustaw
Kod
# Check if a set is a set digits = {1, 2, 3, 4,5,6,7,8} print(isinstance(digits, set))
Wyjście:
True
8. Klasa
Kod
# Check if a custom class instance is an instance of that class class Bike: pass my_bike = Bike() print(isinstance(my_bike, Bike))
Wyjście:
True
Zobaczmy więcej przykładów funkcji isinstance(), aby zrozumieć jej funkcjonalność.
Przykład funkcji isinstance() w Pythonie 1
Tutaj przekazujemy obiekt i klasę do funkcji, która zwraca True tylko wtedy, gdy obiekt należy do klasy. Zobacz poniższy przykład.
dla tablicy ciągów Java
Kod
# 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))
Wyjście:
True False
Przykład funkcji isinstance() w Pythonie 2
Funkcja isinstance() może zostać wykorzystana do sprawdzenia, czy obiekt jest instancją klasy realizującej określony interfejs. Interfejs możemy scharakteryzować jako klasę, która określa zbiór technik wykonywanych przez różne klasy.
Kod
# 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))
Wyjście:
'Woof!' 'Meow!'
Przykład funkcji isinstance() w Pythonie 3
Ta funkcja zwraca również True, jeśli obiekt należy do podklasy, a klasa jest klasą nadrzędną. Zobacz jak to działa na poniższym przykładzie.
Kod
# 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
Wyjście:
True True
Wniosek:
Podsumowując, funkcja isinstance() jest przydatną wbudowaną funkcją Pythona, która pozwala nam sprawdzić, czy obiekt jest instancją predefiniowanej klasy lub podklasy. Może to być szczególnie przydatne podczas pracy z kodem zawierającym różne typy danych lub podczas pisania bibliotek lub interfejsów API, które muszą obsługiwać bardzo wiele typów danych wejściowych. Wykorzystując funkcję isinstance(), można zagwarantować, że nasz kod będzie działał dokładnie w przypadku różnych typów danych wejściowych i, ogólnie rzecz biorąc, będzie bardziej energiczny.