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