Sobes.tech
Middle

Python'da parametreler değer ile mi yoksa referans ile mi geçirilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Python'da parametreler nesneye referans yoluyla (pass-by-object-reference) iletilir. Bu, fonksiyonun değerin kopyası yerine nesneye referans aldığı anlamına gelir. Ancak, davranış nesnenin değiştirilebilirliğine bağlıdır:

  • Değiştirilebilir nesneler (örneğin, listeler, sözlükler) içindeki değişiklikler orijinal nesneye yansır.
  • Değiştirilemez nesneler (örneğin, sayılar, dizgeler, demetler) içinde nesneyi değiştirmeye çalışmak yeni bir nesne oluşturur ve orijinal değişmeden kalır.

Örnek:

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

Bu nedenle, parametrelerin referans yoluyla iletildiği söylenebilir, ancak davranış değiştirilemez nesneler için değer iletimi gibi görünür.