Middle
Python'da parametrlar qiymat yoki havola orqali o'tkaziladimi?
sobes.tech AI
AIdan javob
Python'da parametrlar ob'ektga havola bilan uzatiladi (pass-by-object-reference). Bu, funktsiya qiymat nusxasi emas, balki ob'ektga havola olishini anglatadi. Biroq, xulq ob'ektning o'zgartiriluvchanligiga bog'liq:
- O'zgartiriladigan ob'ektlar (masalan, ro'yxatlar, lug'atlar) ichidagi o'zgarishlar asl ob'ektga ta'sir qiladi.
- O'zgartirilmaydigan ob'ektlar (masalan, raqamlar, satrlar, tuplar) ichida ob'ektni o'zgartirishga harakat qilish yangi ob'ekt yaratadi va asl ob'ekt o'zgarmaydi.
Misol:
def modify_list(lst):
lst.append(4)
my_list = [1, 2, 3]
modify_list(my_list)
print(my_list) # [1, 2, 3, 4]
def modify_int(x):
x += 1
num = 5
modify_int(num)
print(num) # 5
Shu sababli, parametrlar havola bilan uzatiladi, ammo o'zgartirilmaydigan ob'ektlar uchun xulq qiymat bilan uzatishga o'xshash bo'ladi.