Sobes.tech
Middle

Pythonда параметрлер маан менен өткөрүлөбү, же шилтемеге ээбү?

sobes.tech AI

AIден жооп

Pythonдо параметрлер объектке шилтеме аркылуу өткөрүлөт (pass-by-object-reference). Бул функция объектке шилтемени алат, маанинин көчүрмөсүн эмес. Бирок, жүрүм-турум объекттин өзгөрүлмөлүүлүгүнө көз каранды:

  • Өзгөрүлмө объекттер үчүн (мисалы, тизмелер, сөздүктөр) функциянын ичинде жасалган өзгөртүүлөр оригиналдуу объектке таасир этет.
  • Өзгөрүлбөс объекттер үчүн (мисалы, сандар, саптар, тизмектер) объектти өзгөртүүгө аракет кылуу жаңы объект түзөт, ал эми оригинал өзгөртүүсүз калат.

Мисал:

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

Ошентип, параметрлер шилтеме аркылуу өткөрүлөт деп айтууга болот, бирок жүрүм-турум өзгөрүлбөс объекттер үчүн мааниге өткөрүүдөй көрүнөт.