Python Callables Le Basi e i Segreti

Python Callables Le Basi e i Segreti Svelati

PROGRAMMAZIONE PYTHON

Scopri quanto possano essere potenti i callabili Python.

In Python, ci sono molti callabili tra cui scegliere. Foto di Pavan Trikutam su Unsplash

Nei linguaggi di programmazione, gli oggetti chiamabili sono tipicamente associati alle funzioni, e a buon motivo. Le funzioni sono forse gli esempi migliori di oggetti chiamabili, ma non sono gli unici. In Python, ci sono molti altri tipi chiamabili, che possono essere incredibilmente utili e potenti. È anche possibile creare i propri oggetti chiamabili. Questo articolo riguarda entrambi.

Un oggetto chiamabile è un oggetto che può essere richiamato utilizzando una coppia di parentesi, come ad esempio qui di seguito, dove utilizziamo la funzione integrata sum():

>>> sum([1, 1, 1])3

Una chiamata a un oggetto chiamabile, a seconda della sua definizione, può essere

  • senza argomenti, come in no_args_callable()
  • o una serie di argomenti posizionali e/o con parole chiave, come in args_callable(arg1, arg2), args_callable(arg1, arg2=value2) o args_callable(arg1=value1, arg2=value2)

In precedenza, ho descritto un oggetto chiamabile come un nome. La parola callable, tuttavia, è anche usata come aggettivo, che significa essere un oggetto chiamabile. Pertanto, un oggetto chiamabile è lo stesso di un oggetto chiamabile.

Python ha una funzione integrata, callable(), che controlla se un oggetto è chiamabile, o, in altre parole, se è un oggetto chiamabile. Considera i seguenti esempi di chiamabili effettivi:

>>> callable(lambda x: x + 1)True>>> callable(print)True>>> def foo(): ...>>> callable(foo)True

Gli oggetti sottostanti non sono chiamabili:

>>> callable(None)False>>> callable(10)False>>> callable("ciao")False

Gli esempi positivi precedenti riguardavano le funzioni, che sono ciò che la maggior parte delle persone associa ai chiamabili. Tuttavia, in realtà, ogni classe Python è chiamabile. Se conosci le basi della programmazione orientata agli oggetti in Python, sai che per creare un’istanza di una classe, fai quanto segue:¹

>>> class Vuota: ...

Questo sembra esattamente una chiamata, ed è così – ed è per questo che le classi Python sono chiamabili.

Questo codice mostra che la classe Vuota è chiamabile, ma la verità è che ogni classe Python è chiamabile. Tuttavia, in Python…