⊗pyPmFnSN 4 of 129 menu

Sfumature dell'utilizzo degli ambiti di visibilità in Python

Consideriamo le importanti sfumature dell'utilizzo delle variabili locali e globali.

Supponiamo di avere una variabile globale num. Creiamo una funzione func che stamperà num globale in console:

num = 1 def func(): print(num) func() # stamperà 1

Ora dichiariamo una num locale una riga sotto la funzione print. Dopo l'esecuzione del codice in console verrà stampato un errore. Ciò accade perché Python all'interno della funzione percepisce num solo come una variabile locale, che non è ancora stata dichiarata:

num = 1 def func(): print(num) # stamperà un errore num = 2

Ora riscriviamo il codice all'interno della funzione in modo che il valore della variabile num aumenti di 2:

num = 1 def func(): num += 2 # stamperà un errore

L'errore è causato dal fatto che l'espressione num += 2 rappresenta la seguente scrittura:

num = num + 2

Tuttavia, la variabile locale stessa, a cui viene aggiunto il valore, non è ancora dichiarata. E di conseguenza Python restituisce un errore, poiché non è possibile aggiungere un numero a un valore inesistente.

Quale sarà il risultato dell'esecuzione del seguente codice:

tst = '12' def func(): tst = 12 return tst print(tst)

Quale sarà il risultato dell'esecuzione del seguente codice:

tst = 'abc' def func(): tst = tst.upper() return tst func() print(tst)

Quale sarà il risultato dell'esecuzione del seguente codice:

tst = 'abc' def func(): txt = tst.upper() return txt print(func()) print(tst)
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta