Porady. Pandas. Python. Django. Microsoft Power BI. Tableau.

Python. Metoda isinstance()

| python | isistance() | type()

isinstance() to wbudowana funkcja Pythona, która sprawdza, czy obiekt jest instancją określonej klasy lub klasy pochodnej. Służy do bezpiecznego type checkingu, umożliwiając uniknięcie błędów typu w kodzie, szczególnie w dynamicznie typowanym Pythonie.

Przykład w e-commerce

# Przykład w e-commerce: analiza danych zamówień
zamowienia = [
	{"id": 1, "produkt": "Laptop", "cena": 4500.0, "ilosc": 1},
	{"id": 2, "produkt": "Myszka", "cena": 50, "ilosc": 5},
	{"id": 3, "produkt": "Klawiatura", "cena": 200, "ilosc": 2},
	{"id": 4, "produkt": "Monitor", "cena": "błąd", "ilosc": 1},  # Błędne dane
]


def oblicz_wartosc_koszyka(zamowienie):
	# Sprawdzamy typy przed obliczeniami
	if isinstance(zamowienie["cena"], (int, float)):
		return zamowienie["cena"] * zamowienie["ilosc"]

	print(f"Błąd w zamówieniu {zamowienie['id']}: cena nie jest liczbą")
	return 0


wartosci = [oblicz_wartosc_koszyka(z) for z in zamowienia]

print("Wartości koszyków:", wartosci)

Kiedy i po co używać isinstance()?

  • Walidacja danych wejściowych: W e-commerce dane z API lub baz mogą być niejednorodne – sprawdzaj typy przed przetwarzaniem, unikając wyjątków TypeError.
  • Polimorfizm i dziedziczenie: Obsługuj różne klasy pochodne, np. Product, DigitalProduct czy Service.
  • Bezpieczne przetwarzanie list/mieszanych typów: W analizie data science filtruj tylko numeryczne wartości do agregacji.
  • Zamiast type(): isinstance() jest lepsze, bo obsługuje dziedziczenie i krotki klas (np. isinstance(x, (int, float))).