lettura facile

La classe object in Python

In Python, la classe `object` è la base di tutte le classi ed è in cima alla gerarchia delle classi.

Questo significa che ogni classe creata è implicitamente una sottoclasse di `object`, e quindi ogni oggetto è un'istanza di `object`. Non importa quale sia il tipo dell'oggetto tutti sono istanze di `object`.

Ad esempio, crea una lista

myList = [1,2,3]

Questa lista è un oggetto ed è un'istanza della classe `object`

print(isinstance(myList, object))

True

Anche la metaclasse `type` che crea le classi è a sua volta un'istanza della classe base `object`.

Tuttavia, `object` non ha superclassi, quindi si trova al vertice della gerarchia.

print(isinstance(type, object))

True

E ovviamente anche la classe base `object` è un'istanza di se stessa.

print(isinstance(object, object))

True

Ogni oggetto è un'istanza di `object` anche i dati.

Ad esempio, assegna un valore alla variabile n.

n=10

La variabile n è un'istanza della classe `object`

print(isinstance(n, object))

True

Lo stesso accade quando crei una classe predefinita.

class Foo:
    pass

Se accedi all'attributo __base__ della classe ottieni la conferma che è un'oggetto della classe `object`

print(Foo.__bases__)

(<class 'object'>,)

In conclusione, tutte le classi ereditano implicitamente da `object`.

Questo significa che tutte le classi in Python, direttamente o indirettamente, sono sottoclassi di `object`, e quindi tutti gli oggetti sono istanze di `object`.

Alcuni oggetti sono "tipi" o "classi" se sono sottoclassi anche della classe `type`, altri oggetti invece non lo sono.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin