lettura facile

Il namespace Built-in in Python

Il namespace built-in in Python rappresenta un livello molto speciale di namespace perché contiene le funzioni e i tipi built-in che sono sempre disponibili senza doverli importare. E' disponibile dall'avvio fino alla chiusura dell'interprete Python.

Questo include non solo funzioni come `print()`,  `id` e `len()`, ma anche tipi incorporati come `int`, `float`, `dict`, e `list`.

Che cosa sono i Built-ins?

Python viene fornito con un set di funzioni e tipi predefiniti, disponibili in ogni programma senza la necessità di importarli. Questi built-ins sono molto utili per eseguire compiti comuni, come:

  • Funzioni: `print()`, `len()`, `type()`, `id()`, `range()`, ecc.
  • Tipi: `int`, `float`, `dict`, `list`, `tuple`, `set`, `str`, ecc.
  • Eccezioni: `Exception`, `ValueError`, `TypeError`, `KeyError`, ecc.

Questi elementi sono sempre a disposizione perché risiedono nel built-in namespace.

Ad esempio, digita questi comandi sul terminale di Python.

numeri = [1, 2, 3, 4]
# Utilizza la funzione built-in 'len'
print(len(numeri))

Per utilizzare l'istruzione print non devi importarla, perché è una funzione predefinita.

Viene caricata automaticamente quando apri una sessione Python.

4

La stessa cosa avviene quando utilizzi i tipi.

Ad esempio, il tipo 'int' dei numeri interi è un data type predefinito del linguaggio.

numero = 10

Puoi accedere al built-in namespace anche tramite il modulo `builtins`:

import builtins
   # Stampa tutte le funzioni e i tipi built-in
   print(dir(builtins))

Questo elenco comprende tutto ciò che è disponibile senza specificare un'importazione. 

Evita di sovrascrivere il namespace built-in

Python ti offre la flessibilità di personalizzare il comportamento del tuo programma.

È tecnicamente possibile sovrascrivere un built-in, ma è sconsigliato perché può portare a confusione e bug:

Ad esempio, questa funzione sovrascrive la funzione built-in 'print'

def print(messaggio):
     return f"Messaggio sovrascritto: {messaggio}"

Il linguaggio Python non te lo impedisce ma, così facendo, non potrai più utilizzare la funzione built-in print durante la sessione o l'esecuzione dello script.

Per ripristinare il comportamento originale devi eliminare la definizione sovrascritta o riavviare l'interprete Python.

Quindi, nonostante la possibilità di sovrascrivere i built-ins, modificare o sostituire i built-ins dovrebbe essere fatto con cautela e solo in casi ben giustificati.

 




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




FacebookTwitterLinkedinLinkedin