Anteprima
Vedrai una selezione di 1 pagina su 5
Appunti Fondamenti di Informatica Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Tipo di Passaggio Comportamento pratico

oggetto (tecnico) modificarli)

AFFERMAZIONE DELLA PROF:

“con gli oggetti che in python hanno dei riferimenti (liste,

stringhe, matrici) accade un fatto strano, il valore non

viene ricopiato, ma la lista l1 della memoria locale

condivide lo stesso spazio di memoria della lista l1 della

memoria centrale. Si chiama Passaggio per riferimento”

SPIEGAZIONE:

� "Oggetti che in Python hanno dei riferimenti":

In Python ogni variabile è un riferimento

 (puntatore) a un oggetto in memoria.

Alcuni oggetti, come liste, dizionari, matrici, sono

 mutabili, cioè modificabili.

Quando li "passi" a una funzione, non viene creata

 una copia, ma viene passato il riferimento.

� "Il valore non viene ricopiato":

Non si fa una copia "fisica" dell'oggetto.

 La funzione vede e lavora sullo stesso oggetto che

 si trova fuori dalla funzione.

� "La lista l1 nella memoria locale condivide lo

stesso spazio di memoria della lista l1 della memoria

centrale":

Quando chiami una funzione con una lista l1, la

 funzione crea un nuovo nome l1 locale, ma questo

nome punta allo stesso oggetto.

Quindi:

 La lista l1 nel programma principale (memoria

o centrale),

e la lista l1 dentro la funzione (memoria

o locale)

→ sono lo stesso oggetto in memoria.

Quindi viene mantenuto un riferimento alla stessa

 area di memoria, il che significa che se una variabile

viene modificata, anche l’altra che punta allo stesso

oggetto cambierà.

Cosa significa "Passaggio per riferimento"?

 Significa che non passi il contenuto, ma un collegamento

(riferimento) all’oggetto originale.

 Quindi se modifichi l’oggetto dentro la funzione, la modifica si

riflette anche fuori.

ESEMPIO:

l1 = [1, 2, 3]

l2 = l1 # l2 non è una nuova lista, ma un riferimento a l1

l2.append(4) # Modificando l2, anche l1 cambia

print(l1) # Output: [1, 2, 3, 4]

ESEMPIO SUL SIDE EFFECT

l1 = [1, 2, 3]

x = 12

def modificaParametri(l1, x):

for i in range(len(l1)):

l1[i] = 0

x = 0

modificaParametri(l1, x)

print("la lista", l1) # ➝ [0, 0, 0]

print("x", x) # ➝ 12

▶ Quando chiami modificaParametri(l1, x):

Python non copia i dati, ma passa:

 per l1 → il riferimento all’oggetto lista (stessa

o area di memoria)

per x → il valore (copiato), perché è un intero

o (immutabile)

▶All’interno della funzione:

Dettagli
A.A. 2025-2026
5 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher paolajdjjdkdkkdkkdkdkkdkdkdkkdkdkdk di informazioni apprese con la frequenza delle lezioni di Fondamenti di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università della Calabria o del prof Guzzo Antonella.