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