Problema con le funzioni

AndreaTasselli (5100 points)
3 6 11
asked Dec 5, 2021 in HW6 by AndreaTasselli (5,100 points)
closed Dec 5, 2021 by AndreaTasselli

Non riesco a capire perché non mi faccia collegare la mia funzione ad una variabile

Sono alla funzione principale def ex(file_dati, file_png, spaziatura):

e assegno :

immagine=imm(spaziatura,matrice,ListaAltezze,Larghezze,altezza,larghezza)

La funzione imm è quella che mi permette di modificare l'immagine nera, trascrivendo i palazzi.

L'errore che mi da python è che tutte le variabili all'interno di imm non sono definite.

118 views
closed with note: trovato problema

1 Answer

saidai (1340 points)
1 2 13
answered Dec 5, 2021 by saidai (1,340 points)

Se ti modifica direttamente l'immagine non dovrebbe avere un valore di ritorno, di conseguenza assegnarla ad una variabile non ha molto senso.

Se invece ciò che fai è lavorare su una copia dell'immagine, controlla bene che il return avvenga sempre, quindi che non sia in nessun blocco di codice con condizione.

Questi sono i consigli che posso darti con le poche informazioni che hai dato.

Per quanto riguarda le variabili non definite: 

Se non ho capito male il problema è che provi ad accedere alle variabili dichiarate nella funzione imm() dalla funzione ex().

Nella programmazione viene definita "Variable Scope" ovvero la visibilità di una variabile all'interno di un programma.

Ti consiglio di dare una letta a qualche articolo online però in breve: una variabile nasce e muore nella funzione in cui viene dichiarata

def main():
  def func():
    a = 5
  print(a)

main()

Scrivere ciò porterà ad un errore poiché la variabile "a" viene definita ed eliminata nella funzione "func".

Spero di essere stato chiaro e di aver risolto eventuali dubbi.