Python isinstance()-funktionen används för att kontrollera om det givna objektet är en instans av den klassen. Om objektet tillhör klassen returnerar det True. Annars returnerar False. Den returnerar också sant om klassen är en underklass.
Funktionen isinstance() tar två argument objekt och classinfo och returnerar antingen True eller False. Funktionens signatur anges nedan.
Syntax:
isinstance(object, classinfo)
Parametrar
objekt: Det är ett objekt av sträng, int, float, lång eller anpassad typ.
klassinformation: Klassnamn.
Lämna tillbaka
Det returnerar booleskt antingen Sant eller Falskt.
Låt oss se några exempel på isinstance()-funktionen för att förstå dess funktionalitet.
Python Isinstance() Exempel:
Vi använder funktionen isinstance() för att kontrollera om olika variabler är instanser av sina separata datatyper eller klasser.
1. Heltal
Koda
minnesbyte
# Check if an integer is an int n = 100 print(isinstance(n, int))
Produktion:
True
2. Flyt
Koda
# Check if a float is a float pi = 3.14159 print(isinstance(pi, float))
Produktion:
True
3. Sträng
Koda
# Check if a string is a string name = 'Johnny' print(isinstance(name, str))
Produktion:
True
4. Lista
Koda
dfa exempel
# Check if a list is a list colours = ['blue', 'black', 'brown'] print(isinstance(colours, list))
Produktion:
True
5. Ordbok
Koda
# Check if a dictionary is a dict person = {'name': 'Ayan', 'age': 30} print(isinstance(person, dict))
Produktion:
biträdande poliskommissarie
True
6. Tuppel
Koda
# Check if a tuple is a tuple point = (1, 5) print(isinstance(point, tuple))
Produktion:
True
7. Ställ in
Koda
# Check if a set is a set digits = {1, 2, 3, 4,5,6,7,8} print(isinstance(digits, set))
Produktion:
True
8. Klass
Koda
# Check if a custom class instance is an instance of that class class Bike: pass my_bike = Bike() print(isinstance(my_bike, Bike))
Produktion:
True
Låt oss se några fler exempel på isinstance()-funktionen för att förstå dess funktionalitet.
Python isinstance() Funktionsexempel 1
Här skickar vi objekt och klass till funktionen som returnerar True endast om objektet tillhör klassen. Se exemplet nedan.
Koda
# 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))
Produktion:
True False
Python isinstance() Funktionsexempel 2
isinstance() kan användas för att kontrollera att ett objekt är en instans av en klass som utför ett specifikt gränssnitt. Vi kan karakterisera ett gränssnitt som en klass som bestämmer en massa tekniker som olika klasser exekverar.
Koda
slumpmässig ingen generator i java
# 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))
Produktion:
'Woof!' 'Meow!'
Python isinstance() Funktionsexempel 3
Denna funktion returnerar också True om objektet är av underklass och klass är en överordnad klass. Se hur det fungerar i exemplet nedan.
Koda
# 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
Produktion:
True True
Slutsats:
Sammanfattningsvis är funktionen isinstance() en användbar inbyggd Python-funktion som tillåter oss att kontrollera om ett objekt är en instans av en fördefinierad klass eller underklass. Detta kan vara särskilt värdefullt när man arbetar med kod som innehåller olika datatyper, eller när man skriver bibliotek eller API:er som behöver hantera många indatatyper. Genom att använda isinstance() kan man garantera att vår kod fungerar korrekt för olika indatatyper och är mer kraftfull generellt sett.