[Python] Indagine su una variabile.

Gabriele Battaglia iz4apu a libero.it
Mar 17 Maggio 2022 16:55:58 CEST


Reply to Yuri's message, wrote on 05/05/2022 at 17:03:
>
> Il 05/05/22 16:16, Gabriele Battaglia ha scritto:
>> Chiedo venia, so che non si dice così ma non mi viene un termine 
>> migliore, forse inspecting... :)
>>
>>
>> Comunque.
>>
>> Ho una variabile dichiarata ad inizio script, del tipo: d={}
>>
>>
>> poi una routine la modifica, ovviamente ha lo stesso nome all'interno 
>> della funzione che non riceve () e non restituisce nulla con return.
>>
>> All'uscita da questa funzione tuttavia, mi ritrovo d intatta, come se 
>> non avessi apportato alcuna modifica.
>
> All'interno ti risulta modificata?
> Ciao Yuri. Sì, è modificata.

Ti copio dalla console.


 >>> def mo():
...     d=2
...     print(d)
...     return
...
 >>> d
Traceback (most recent call last):
   File "<console>", line 1, in <module>
NameError: name 'd' is not defined
 >>> d=1
 >>> d
1
 >>> mo()
2
 >>> d
1



Allora. parlando di scopes, io avevo capito che quando ti riferisci ad 
una variabile, Python crea una variabile locale se non ne esiste già una 
con lo stesso nome. Cioè, se la variabile a cui mi riferisco esiste già 
ed è stata creata da uno scope superiore, tipo il main in questo caso, 
allora usa quella.

A questo punto allora però la mia confusione cresce perchè non capisco 
più a cosa serva la chiave global


:)


Devo tornare a leggere le basi di Python. Povero me.

Gabry. :)

> il mio consiglio è lanciare lo script via pdb (o la parte di script 
> che interessa valutare). Puoi anche aprire un prompt interattivo di 
> python e all'interno definire la tua variabile d e poi
>
> >> from script import funzionemodificad
>
> >> pdb.runcall(funzionemodificad)
>
> in questo modo puoi vedere passo passo cosa succede. Alla fine della 
> funzione torni al prompt e hai la tua variabile d, che puoi stampare 
> con un print.
>
>
>>
>>
>> Come si indaga su un problema di questo genere? Io non riesco a 
>> trovare l'inghippo.
>>
>>
>> Grazie per il vostro sempre illuminante aiuto.
>>
>>
>> Gabry.
>>
>>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> https://lists.python.it/mailman/listinfo/python

-- 
--... ...--  -.. .  .. --.. ....- .- .--. ..-  - ..-  . .
Sent from TB on Windows 10, Genus Bononiae's computer.



Maggiori informazioni sulla lista Python