Junior — Middle
როგორ იცვლებიან ცვლადი მონაცემთა ტიპების ობიექტები, როდესაც ისინი ფუნქციას არგუმენტად გადაეცემა?
sobes.tech AI
პასუხი AI-სგან
პითონში მუტაბელი ტიპის ობიექტები (მაგალითად, სია, ლექსიკონი, ნაკრები) გადაეცემა ფუნქციას ობიექტზე მითითებით. ეს ნიშნავს, რომ თუ ფუნქციის შიგნით ობიექტის შიგთავსს შეცვლით (მაგალითად, სიის დამატებით ელემენტს), ეს ცვლილებები გამოჩნდება ასევე ფუნქციის გარეთ.
მაგალითი:
def add_element(lst):
lst.append(10)
my_list = [1, 2, 3]
add_element(my_list)
print(my_list) # გამოიტანს: [1, 2, 3, 10]
თუმცა, თუ ფუნქციის შიგნით პარამეტრს ახალი ობიექტი მიენიჭება, ეს არ იმოქმედებს გარე ობიექტზე:
def replace_list(lst):
lst = [4, 5, 6] # ახალი ობიექტი იქმნება, ფუნქციისთვის ლოკალურად
my_list = [1, 2, 3]
replace_list(my_list)
print(my_list) # გამოიტანს: [1, 2, 3]
ამიტომ, მუტაბელი ობიექტების გადაცემა ფუნქციას, მათ შიგთავსის შეცვლა შესაძლებელია, და ეს ცვლილებები დარჩება ფუნქციის გარეთ.