Python eval()

La funzione eval() esegue il codice Python (che viene passato come argomento) all'interno del programma.

La sintassi di eval() è:

eval (espressione, globals=None, locals=None)

La funzione eval() prende tre parametri:

  • espressione: la stringa analizzata e valutata come espressione Python.
  • globals (opzionale): un dizionario.
  • locals (opzionale): un oggetto di mappatura. Il dizionario è il tipo di mappatura standard e comunemente usato in Python.

Il metodo eval() restituisce il risultato valutato dall'espressione.

a = 10
print (eval('a + 10'))

Output del codice

20

Altro esempio per eval():

#calcoliamo perimetro ed area del quadrato
def calcola_peri(l):
   return 4*l

def calcola_area(l):
   return l*l

esp = input("Scrivi la funzione: ")

for l in range(1, 5):
   if (esp == 'calcola_peri(l)'):
       print ("Se il lato è ", l, ", Perimetro = ", eval (esp))
   elif (esp == 'calcola_area(l)'):
       print ("Se il lato è ", l, ", Area = ", eval (esp))
   else:
       print ('Nome funzione errato')
       break

Output del codice

Scrivi la funzione: calcola_peri(l)
Se il lato è  1 , Perimetro =  4
Se il lato è  2 , Perimetro =  8
Se il lato è  3 , Perimetro =  12
Se il lato è  4 , Perimetro =  16