Sobes.tech
Middle

Питонда параметрлер мән бойынша ма, әлде сілтеме бойынша ма беріледі?

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

Осылайша, параметрлер сілтеме арқылы беріледі деп айтуға болады, бірақ мінез-құлық өзгермейтін объектілер үшін мән арқылы берілуге ұқсас.