Ce face type()
Cu un argument, type() spune ce fel de valoare ai: type(42) este <class 'int'>. Numele tipului îl obții cu type(x).__name__. Este util la depanare.
Pentru a verifica un tip în cod, preferă isinstance(), care ține cont și de moștenire. Forma cu trei argumente creează dinamic o clasă și este folosită rar, în cod avansat.
Parametri
| Parametru | Descriere |
|---|---|
obiect |
Valoarea al cărei tip îl afli. |
nume, baze, dict |
Forma avansată: numele clasei, tuplul claselor părinte și dicționarul cu atribute. |
Ce returnează
Tipul (clasa) obiectului sau o clasă nouă.
Exemple
Exemplul 1: Tipul unor valori
for valoare in [42, 3.14, "text", [1, 2], {"a": 1}, (1,), None, print]:
print(type(valoare).__name__)
Rezultat
int
float
str
list
dict
tuple
NoneType
builtin_function_or_method
Exemplul 2: Comparație cu isinstance()
print(type(True) == int)
print(isinstance(True, int))
print(type("abc") is str)
Rezultat
False
True
True
Exemplul 3: Crearea unei clase cu type()
Punct = type("Punct", (), {"x": 0, "y": 0, "descrie": lambda self: f"({self.x}, {self.y})"})
p = Punct()
p.x = 3
print(p.descrie(), type(p).__name__)
Rezultat
(3, 0) Punct
Greșeli frecvente
- Verifici tipul cu
type(x) == list. O subclasă a listei nu va trece testul; foloseșteisinstance(x, list).
Comenzi înrudite
isinstance() și issubclass(): Verifică dacă un obiect este de un anumit tip, sau dacă o clasă moștenește alta.Variabile și tipuri de date: Cum creezi variabile în Python și care sunt tipurile de bază: int, float, str, bool, None, list, dict.dir(): Listează numele (atribute și metode) disponibile într-un obiect sau modul.class: Definește o clasă: un șablon pentru obiecte care au date (atribute) și comportament (metode).