[Python] Considerazione su Scope di oggetti mutabili e funzioni.

Valerio Pachera sirio81 a gmail.com
Gio 18 Giu 2026 17:21:51 CEST


Ciao a tutti, programmo saltuariamente e oggi ho riletto questo articolo:
https://realpython.com/python-namespace/

per rinfrescarmi la memoria.

Una volta capito il modello LEGB, ci sono "rimasto male" quando ho letto
che un mutable object, come ad esempio una lista presente sul global scope,
può essere modificata dal local scope.

Es:

---
fruits = ['apple', 'banana']

def f():
    fruits.append('melon')

f()

print(fruits)

# ['apple', 'banana', 'melon']
---


Lo stesso risultato lo si ottiene se passo fruits come argomento della
funzione:

---
fruits = ['apple', 'banana']

def f(fruits):
    fruits.append('melon')

f(fruits)

print(fruits)

# ['apple', 'banana', 'melon']
---


1) Cerco una razionale su questa scelta implementativa così da assimilarlo
meglio.
Secondo voi perché i mutable object possono essere modificati dal local
scope?

2) Nel secondo esempio credo non vi sia alcun vantaggio / differenza nel
passare la variabile come argomento della funzione. Concordate?
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20260618/dd9d354a/attachment.html>


Maggiori informazioni sulla lista Python