isinstance()

Sprawdza, czy obiekt jest danego typu lub jego podtypu.

Zwraca
True albo False.
Na tej stronie

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 True przechodzi też test isinstance(x, int).
  • Zamiast sprawdzać typ, często lepiej spróbować wykonać operację i obsłużyć wyjątek.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.