Introducció
L'àmbit de les variables (també conegut com a "scope" en anglès) és un concepte fonamental en la programació que determina on una variable és accessible dins del codi. Comprendre l'àmbit de les variables és crucial per evitar errors i escriure codi clar i mantenible.
Tipus d'Àmbit
Àmbit Local
Les variables locals són aquelles que es defineixen dins d'una funció o bloc de codi i només són accessibles dins d'aquest context.
def funcio_exemple(): variable_local = 10 print(variable_local) # Accessible dins de la funció funcio_exemple() # print(variable_local) # Error: variable_local no està definida fora de la funció
Àmbit Global
Les variables globals es defineixen fora de qualsevol funció o bloc de codi i són accessibles des de qualsevol part del programa.
variable_global = 20 def funcio_exemple(): print(variable_global) # Accessible dins de la funció funcio_exemple() print(variable_global) # Accessible fora de la funció
Àmbit de Bloc
En alguns llenguatges de programació, com C++ o JavaScript, les variables poden tenir un àmbit de bloc, el que significa que només són accessibles dins del bloc de codi on es defineixen (per exemple, dins d'un bucle o una condició).
if (true) { let variable_bloc = 30; console.log(variable_bloc); // Accessible dins del bloc } // console.log(variable_bloc); // Error: variable_bloc no està definida fora del bloc
Àmbit de Variables en Funcions
Variables Locals
Les variables declarades dins d'una funció són locals a aquesta funció i no poden ser accedides des de fora.
def funcio_exemple(): variable_local = 10 print(variable_local) funcio_exemple() # print(variable_local) # Error: variable_local no està definida fora de la funció
Variables Globals
Per accedir a una variable global dins d'una funció, es pot utilitzar la paraula clau global
en alguns llenguatges de programació.
variable_global = 20 def funcio_exemple(): global variable_global variable_global = 30 print(variable_global) funcio_exemple() print(variable_global) # Sortida: 30
Variables No Locals (Enclavament de Funcions)
En llenguatges que permeten l'enclavament de funcions, com Python, es pot accedir a variables de funcions externes utilitzant la paraula clau nonlocal
.
def funcio_externa(): variable_externa = 40 def funcio_interna(): nonlocal variable_externa variable_externa = 50 print(variable_externa) funcio_interna() print(variable_externa) funcio_externa() # Sortida: # 50 # 50
Exercicis Pràctics
Exercici 1: Variables Locals i Globals
- Defineix una variable global
x
amb el valor 5. - Defineix una funció que imprimeixi el valor de
x
. - Defineix una altra funció que canviï el valor de
x
a 10 i després imprimeixix
. - Crida les dues funcions i imprimeix
x
després de cada crida.
# Solució x = 5 def imprimir_x(): print(x) def canviar_x(): global x x = 10 print(x) imprimir_x() # Sortida: 5 canviar_x() # Sortida: 10 print(x) # Sortida: 10
Exercici 2: Àmbit de Bloc (Només per Llenguatges amb Àmbit de Bloc)
- Defineix una variable
y
dins d'un blocif
i intenta imprimir-la fora del bloc. - Observa el comportament i explica per què es produeix un error (si és el cas).
// Solució if (true) { let y = 15; console.log(y); // Accessible dins del bloc } console.log(y); // Error: y no està definida fora del bloc
Resum
En aquesta secció, hem après sobre els diferents tipus d'àmbit de les variables: local, global i de bloc. També hem vist com les variables es comporten dins de les funcions i com podem accedir a variables globals i no locals. Comprendre l'àmbit de les variables és essencial per escriure codi clar i evitar errors comuns.
Amb aquests coneixements, estàs preparat per avançar al següent tema del curs.
Fonaments de la Programació
Mòdul 1: Introducció a la Programació
- Què és la programació?
- Història de la programació
- Llenguatges de programació
- Entorns de desenvolupament