Python isinstance() funkcija naudojama patikrinti, ar nurodytas objektas yra tos klasės egzempliorius. Jei objektas priklauso klasei, jis grąžina True. Kitu atveju grąžina False. Taip pat grąžinama tiesa, jei klasė yra poklasis.
Funkcija isinstance() paima du argumentus objektą ir classinfo ir grąžina True arba False. Funkcijos parašas pateiktas žemiau.
Sintaksė:
isinstance(object, classinfo)
Parametrai
objektas: Tai yra eilutės, int, float, long arba pasirinktinio tipo objektas.
informacija apie klasę: Klasės pavadinimas.
Grįžti
Jis grąžina loginį vertę True arba False.
Pažiūrėkime keletą funkcijos isinstance() pavyzdžių, kad suprastume jos funkcionalumą.
Python Isinstance() pavyzdžiai:
Naudojame funkciją isinstance() norėdami patikrinti, ar įvairūs kintamieji yra atskirų duomenų tipų ar klasių egzemplioriai.
1. Sveikasis skaičius
Kodas
apache
# Check if an integer is an int n = 100 print(isinstance(n, int))
Išvestis:
True
2. Plūduriuoti
Kodas
ką tai reiškia xd
# Check if a float is a float pi = 3.14159 print(isinstance(pi, float))
Išvestis:
True
3. Styga
Kodas
# Check if a string is a string name = 'Johnny' print(isinstance(name, str))
Išvestis:
True
4. Sąrašas
Kodas
# Check if a list is a list colours = ['blue', 'black', 'brown'] print(isinstance(colours, list))
Išvestis:
True
5. Žodynas
Kodas
# Check if a dictionary is a dict person = {'name': 'Ayan', 'age': 30} print(isinstance(person, dict))
Išvestis:
True
6. Korpusas
Kodas
# Check if a tuple is a tuple point = (1, 5) print(isinstance(point, tuple))
Išvestis:
True
7. Nustatyti
Kodas
# Check if a set is a set digits = {1, 2, 3, 4,5,6,7,8} print(isinstance(digits, set))
Išvestis:
mysql skaičius
True
8. Klasė
Kodas
# Check if a custom class instance is an instance of that class class Bike: pass my_bike = Bike() print(isinstance(my_bike, Bike))
Išvestis:
True
Pažiūrėkime dar kelis funkcijos isinstance() pavyzdžius, kad suprastume jos funkcionalumą.
Python isinstance() funkcijos 1 pavyzdys
Čia mes perduodame objektą ir klasę funkcijai, kuri grąžina True tik tuo atveju, jei objektas priklauso klasei. Žiūrėkite žemiau esantį pavyzdį.
Kodas
# 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))
Išvestis:
True False
Python isinstance() funkcijos 2 pavyzdys
isinstance() gali būti naudojamas norint patikrinti, ar objektas yra klasės, vykdančios konkrečią sąsają, egzempliorius. Sąsają galime apibūdinti kaip klasę, kuri nustato daugybę metodų, kuriuos vykdo skirtingos klasės.
Kodas
# 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))
Išvestis:
'Woof!' 'Meow!'
Python isinstance() funkcijos 3 pavyzdys
Ši funkcija taip pat grąžina True, jei objektas yra poklasio, o klasė yra pagrindinė klasė. Pažiūrėkite, kaip tai veikia toliau pateiktame pavyzdyje.
dizaino modeliai java
Kodas
# 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
Išvestis:
True True
Išvada:
Apibendrinant, funkcija isinstance() yra naudinga integruota Python funkcija, leidžianti patikrinti, ar objektas yra iš anksto nustatytos klasės ar poklasio egzempliorius. Tai gali būti ypač naudinga dirbant su kodu, kuriame yra įvairių tipų duomenų, arba rašant bibliotekas ar API, kurioms reikia susidoroti su daugybe įvesties tipų. Naudodami isinstance (), galime garantuoti, kad mūsų kodas tiksliai veiks su skirtingais įvesties tipais ir apskritai yra energingesnis.