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