Предаване на обекти като параметри в Python

Променливи, съдържащи обекти (списъци, множества, кортежи, речници) във функции се предават по референция. Нека пренапишем кода във функцията така, че първият елемент на предаваната променлива да се промени на удивителен знак. А под функцията декларираме променлива, чиято стойност е списък:

pythondef func(tst):
  tst[0] = '!'
  print(tst)
  
lst = [1, 2, 3, 4, 5]

Тъй като списъците се предават по референция, при извикване на функцията ще се промени и стойността lst в глобалния обхват:

pythonfunc(lst) # ще изведе ['!', 2, 3, 4, 5]
print(lst) # ще изведе ['!', 2, 3, 4, 5]
Задание 1

Какъв ще бъде резултатът от изпълнението на следния код:

pythondef func(lst):
  lst[0] = '!'
  
lst = [1, 2, 3, 4, 5]
func(lst)

print(lst)
Задание 2

Какъв ще бъде резултатът от изпълнението на следния код:

pythondef func(lst):
  lst[0] = '!'
  
lst = [1, 2, 3, 4, 5]
lst = func(lst)

print(lst)
Задание 3

Какъв ще бъде резултатът от изпълнението на следния код:

pythondef func(lst):
  lst = '!'

lst = [1, 2, 3, 4, 5]
func(lst[0])

print(lst)
Задание 4

Какъв ще бъде резултатът от изпълнението на следния код:

pythondef func(dct):
  for key in dct.keys():
    dct[key] += 2
  
dct = {
  'a': 1,
  'b': 2,
  'c': 3,
}

func(dct)
print(dct)