PythonFunkcje wbudowane
isinstance()
Sprawdza, czy obiekt jest danego typu lub jego podtypu.
- Zwraca
TruealboFalse.
Przykład
#Python
def describe(value):
if isinstance(value, bool):
return "wartość logiczna"
if isinstance(value, (int, float)):
return "liczba"
if isinstance(value, str):
return "tekst"
return "coś innego"
for item in [7, 2.5, "HTML", True, None]:
print(describe(item))Wynikzapisany wynik, możesz go sprawdzić
liczba
liczba
tekst
wartość logiczna
coś innego
Definicja i zastosowanie
#Funkcja isinstance(obiekt, typ) zwraca True, jeśli obiekt jest instancją podanego typu albo klasy po nim dziedziczącej. To zalecany sposób sprawdzania typów w warunkach.
Jako drugi argument możesz podać krotkę typów: isinstance(x, (int, float)) sprawdza, czy wartość jest dowolną z tych liczb. Od Pythona 3.10 działa też zapis z unią: int | float.
Pamiętaj, że bool dziedziczy po int, więc isinstance(True, int) zwraca True. Jeśli chcesz wykluczyć wartości logiczne, sprawdź je osobno.
Składnia
#Składnia
isinstance(obiekt, typ_lub_krotka)Parametry
#obiekt
dowolna wartość
Sprawdzany obiekt.typ_lub_krotka
typ, krotka typów lub unia
Typ albo kilka typów do sprawdzenia.
Dobre praktyki
#- Wartości logiczne sprawdzaj przed liczbami, bo
Trueprzechodzi też testisinstance(x, int). - Zamiast sprawdzać typ, często lepiej spróbować wykonać operację i obsłużyć wyjątek.
Powiązane hasła
#- type()Zwraca typ obiektu.
- bool()Zamienia wartość na True albo False według zasad prawdziwości.
- int()Zamienia wartość na liczbę całkowitą.
- classDefiniuje klasę: szablon obiektów łączący dane i funkcje, które na nich działają.
- DziedziczenieBudowanie klasy na bazie innej: klasa pochodna przejmuje metody klasy bazowej i może je rozszerzać lub nadpisywać.
- typingAdnotacje typów: opis, jakich wartości oczekuje funkcja i co zwraca. Sprawdzają je edytory i narzędzia takie jak mypy.
Widzisz błąd albo brakuje przykładu? Napisz do nas.