Il giorno lun 12 feb 2024 alle ore 08:47 Federico Fissore
<feder...@fissore.org> ha scritto:
>
> Ciao
>
> no, l'ultima funzione sta rivalorizzando `par` ogni volta. Cambiala così e 
> riesegui

Ok, questo mi pare che riproduca la situazione:

def prova(cambia, par=[]):
    if cambia:
        par.append('pippo')
        print("cambiata")
    print(par)

prova(False)        # []
prova(True)         # cambiata \n ['pippo']
prova(False)        # ['pippo']

Ma la cosa è un po' più sottile di come mi sembrava di avere capito, infatti:

def prova(cambia, par=[]):
    if cambia:
        par = ['pippo']
        print("cambiata")
    print(par)

prova(False)        # []
prova(True)         # cambiata \n ['pippo']
prova(False)        # []

def prova(cambia, par=''):
    if cambia:
        par = 'pippo'
        print("cambiata")
    print(par)

prova(False)        # ''
prova(True)         # cambiata \n 'pippo'
prova(False)        # ''

Mi sfugge ancora qualcosa...

Grazie, ciao.

-- 

Daniele

www.matematicadolce.eu

Perché la scuola,
invece di essere un luogo dove ci si allena a imparare,
è un luogo dove si fa finta di sapere?
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a