Eseguire codice dinamico in Python con exec

Mattepuffo's logo
Eseguire codice dinamico in Python con exec

Eseguire codice dinamico in Python con exec

La funzione built-in exec ci permette di eseguire codice dinamico in Python.

Ad esempio possiamo eseguire codice che si trova sotto forma di stringa, da codice "compilato" da una funzione.

Cominciamo con un paio di esempi da string; nel primo esempio vediamo anche come prendere l'input da utente:

exec("name = input('Scrivi il tuo nome: '); print(f'Ciao, {name}!')")

Sennò possiamo anche svolgere operazioni su dati al di fuori di exec:

numeri = [2, 3, 7, 4, 8]
exec("result = sum(number**2 for number in numeri if number % 2 == 0); print(result)")

Sennò possiamo compilare il codice con compile e poi passarlo ad exec; in questo modo il codice è più veloce.

Quindi:

input_stringa = """
def print_ciao():
    return 'CIAO'
print(print_ciao())
"""

compiled_code = compile(input_stringa, "<string>", "exec")

exec(compiled_code)

Ovviamente questi sono esempi basici, ma possiamo anche di più.

Enjoy!


Condividi

Commentami!