Փոփոխականների փոխանցում հղումով Python-ում
Python-ում բարդ օբյեկտներ պարունակող փոփոխականները փոխանցվում են հղումով: Սա նշանակում է, որ բոլոր փոփոխությունները, որոնք կատարվել են մի փոփոխականում, կարտացոլվեն երկրորդի վրա: Եվ չնայած նրան, որ արժեքների նմանատիպ վերագրումը մեծացնում է սխալների առաջացման ռիսկը, այնուամենայնիվ զգալիորեն խնայվում է օպերացիոն համակարգի համակարգային հիշողության ռեսուրսները:
Ենթադրենք ունենք երկու ցուցակ:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Քանի որ lst2 փոփոխականին վերագրվել է
lst1 արժեքը, այժմ համակարգչի օպերատիվ
հիշողության մեջ պահվում է մեկ ցուցակ,
որին միաժամանակ հղվում են երկու
փոփոխականներ:
Եկեք փոխենք lst2-ի առաջին տարրը
և արտածենք առաջին ցուցակը կոնսոլում:
lst2[0] = '!'
print(lst1) # կարտածի ['!', 2, 3, 4, 5]
Ինչի՞ կհանգի հետևյալ կոդի կատարումը:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Ինչի՞ կհանգի հետևյալ կոդի կատարումը:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Ինչի՞ կհանգի հետևյալ կոդի կատարումը:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)