Օբյեկտների փոխանցումը պարամետրերով Python-ում

Օբյեկտներ պարունակող փոփոխականները (ցանկեր, բազմություններ, tuple-ներ, բառարաններ) ֆունկցիաներին փոխանցվում են հղումով: Եկեք վերագրենք կոդը ֆունկցիայի ներսում այնպես, որ փոխանցվող փոփոխականի առաջին տարրը փոխվի բացականչական նշանի: Իսկ ֆունկցիայից ներքև հայտարարենք մի փոփոխական, որի արժեքը ցանկ է:

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)