Koncepcja „przestrzeni nazw” w Pythonie i widoczność zmiennych
Lekcja 28 Moduł 5
Zmienne typu unmutable:
- str
- int
- float
- tuple
- bool
Zmienne typu mutable:
- list
- dict
- object
def funkcja_1(x):
print("Funkcja_1")
print(f"Podano: {x}")
print(f"ID x = {id(x)}")
id_1 = id(dana)
print(f"ID dana = {id_1}")
def funkcja_1_g(x):
print("Funkcja_1_g")
global dana
print(f"Podano: {x}")
print(f"ID x = {id(x)}")
id_1 = id(dana)
print(f"ID dana = {id_1}")
dana = 5
def funkcja_2(x):
print("Funkcja_2")
dana = 5
print(f"Podano: {x}")
id_1 = id(dana)
id_2 = id(x)
print(f"ID dana = {id_1}")
print(f"ID x = {id_2}")
def funkcja_3(x):
print("Funkcja_3")
print(f"Podano: {x}")
print(f"ID x = {id(x)}")
id_1 = id(dana)
id_2 = id(x)
id_3 = id(mutable)
print(f"ID dana = {id_1}")
print(f"ID x = {id_2}")
print(f"ID mutable = {id_3}")
def funkcja_4(x):
print("Funkcja_4")
print(f"Podano: {x}")
print(f"ID x = {id(x)}")
id_1 = id(dana)
id_2 = id(x)
id_3 = id(mutable)
print(f"ID dana = {id_1}")
print(f"ID mutable = {id_3}")
mutable[1] = 2 * x
mutable[3] = x
print(f"ID mutable = {id_3}")
def funkcja_5(x):
print("Funkcja_5")
print(f"Podano: {x}")
print(f"ID x = {id(x)}")
id_1 = id(dana)
id_2 = id(x)
id_3 = id(mutable)
print(f"ID dana = {id_1}")
print(f"ID mutable = {id_3}")
mutable[1] = 2 * x
mutable[3] = x
print(f"ID mutable = {id_3}")
print("Teraz nowe mutable")
mutable = 23
id_4 = id(mutable)
print(f"ID mutable = {id_4}")
dana = 20
mutable = { 1: 100, 2: "Adam"}
print("Wartości początkowe:")
print(f"dana = {dana}")
print(f"mutable = {mutable}")
print(f"ID GLOBAL dana = {id(dana)}")
print(f"ID GLOBAL mutable = {id(mutable)}")
print("----------------")
funkcja_1(35)
funkcja_1(dana)
print("----------------")
funkcja_2(35)
funkcja_2(dana)
print("----------------")
funkcja_1_g(35)
print("----------------")
funkcja_3(35)
funkcja_3(dana)
print("----------------")
funkcja_4(35)
funkcja_4(dana)
print("----------------")
# po wywołaniu tej funkcji wystąpi błąd:
# UnboundLocalError: local variable 'mutable' referenced before assignment
# funkcja_5(35)
print("----------------")
print("Wartości końcowe:")
print(f"dana = {dana}")
print(f"mutable = {mutable}")
print(f"ID GLOBAL dana = {id(dana)}")
print(f"ID GLOBAL mutable = {id(mutable)}")
Leave a comment
Comment as a guest: