Ce face object()
Orice clasă din Python moștenește, direct sau indirect, object. De aici vin metodele implicite: __str__, __eq__ (compară identitatea), __hash__ etc. În Python 3, class A: și class A(object): sunt identice.
object() creează un obiect fără atribute, folosit ca santinelă: o valoare unică ce nu poate fi confundată cu nicio altă valoare, nici măcar cu None.
Ce returnează
Un obiect nou, fără atribute.
Exemple
Exemplul 1: Santinelă diferită de None
LIPSA = object()
def citeste(d, cheie, implicit=LIPSA):
if cheie in d:
return d[cheie]
if implicit is LIPSA:
raise KeyError(cheie)
return implicit
date = {"telefon": None}
print(citeste(date, "telefon"))
print(citeste(date, "email", "fără email"))
print(issubclass(int, object), isinstance(len, object))
Rezultat
None
fără email
True True
Greșeli frecvente
- Încerci să adaugi atribute unui
object():o = object(); o.x = 1dăAttributeError. Pentru un obiect simplu cu atribute foloseștetypes.SimpleNamespacesau o clasă proprie.