Sobes.tech
Junior

Чӣ гуна аргументҳо ба функсия дода мешаванд: тавассути истинод ё бо арзиш?

sobes.tech AI

Ҷавоб аз AI

Python-да аргументлар тўғридан-тўғри кўрсатилган ёки қиймат бўйича ўтказилмайди, балки кўпинча "pass by object reference" ёки "pass by sharing" деб аталадиган механизм орқали ўтказилади.

Бу қуйидагича маънони англатади:

  • Аргумент функцияга ўтказилганда, объектга ҳавола ўтказилади.
  • Агар объект ўзгартириладиган бўлса (масалан, рўйхат, луғат), функция ичидаги ўзгартиришлар ташқарида ҳам кўринади.
  • Агар объект ўзгартирилмайдиган бўлса (масалан, рақам, сатр, кортеж), уни ўзгартиришга уринишда яна янги объект яратилади, ва функциядан ташқаридаги оригинал объект ўзгармай қолади.

Ўзгартириладиган объектлар:

# Ўзгартириладиган объект (рўйхат)
def modify_list(items):
    items.append(4)

my_list = [1, 2, 3]
modify_list(my_list)
# my_list ҳозир [1, 2, 3, 4]

Ўзгартирилмайдиган объектлар:

# Ўзгартирилмайдиган объект (рақам)
def modify_number(num):
    num = num + 1

my_number = 5
modify_number(my_number)
# my_number ҳали ҳам 5