Sobes.tech
Junior

Funktsiyaga argumentlar qanday uzatiladi: havola bilan yoki qiymat bilan?

sobes.tech AI

AIdan javob

Python'da argumentlar to'g'ridan-to'g'ri referens yoki qiymat bilan o'tkazilmaydi, balki ko'pincha "pass by object reference" yoki "pass by sharing" deb ataladigan mexanizm orqali o'tkaziladi.

Bu quyidagilarni anglatadi:

  • Argument funksiyaga uzatilganda, obyektga havola uzatiladi.
  • Agar obyekt o'zgartiriladigan bo'lsa (masalan, ro'yxat, lug'at), funksiyada o'zgarishlar tashqarida ham ko'rinadi.
  • Agar obyekt o'zgarmas bo'lsa (masalan, raqam, satr, tupl), uni o'zgartirishga urinishda yangi obyekt yaratiladi, va funksiyadan tashqaridagi asl obyekt o'zgarmas qoladi.

O'zgartiriladigan obyektlar:

# O'zgartiriladigan obyekt (ro'yxat)
def modify_list(items):
    items.append(4)

my_list = [1, 2, 3]
modify_list(my_list)
# my_list endi [1, 2, 3, 4]

O'zgarmas obyektlar:

# O'zgarmas obyekt (raqam)
def modify_number(num):
    num = num + 1

my_number = 5
modify_number(my_number)
# my_number hali ham 5