object() în Python

Clase și obiecte Python 3.0+

Clasa de bază a tuturor claselor; object() creează un obiect gol, unic.

Sintaxă
object()

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 = 1 dă AttributeError. Pentru un obiect simplu cu atribute folosește types.SimpleNamespace sau o clasă proprie.

Comenzi înrudite

  • class: Definește o clasă: un șablon pentru obiecte care au date (atribute) și comportament (metode).
  • super(): Apelează metoda clasei părinte dintr-o clasă care o moștenește.
  • None: Valoarea specială care înseamnă „nimic”, „lipsă” sau „necunoscut”.