Sobes.tech
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.