Senior
Değiştirilebilir varsayılan argümanlı bir fonksiyonda her print ne gösterecek?
sobes.tech yapay zeka
AI'dan gelen yanıt
Fonksiyonların varsayılan olarak değiştirilebilir (mutable) argümanlar alabileceği dillerde, örneğin Python'da, varsayılan değerler fonksiyon tanımlandığında bir kez başlatılır, her çağrıda değil. Bu, varsayılan argüman bir değiştirilebilir nesne (örneğin, liste veya sözlük) ise, bu nesne üzerindeki değişikliklerin çağrılar arasında korunmasına neden olur.
Python'da örnek:
def func(a, lst=[]):
lst.append(a)
print(lst)
func(1) # Çıktı: [1]
func(2) # Çıktı: [1, 2]
func(3, ['x']) # Çıktı: ['x', 3]
func(4) # Çıktı: [1, 2, 4]
Açıklama:
- İlk çağrıda
func(1)varsayılan liste[]kullanılır ve1eklenir. - İkinci çağrıda
func(2)aynı liste kullanılır, şu an[1], ve2eklenir. func(3, ['x'])çağrısında yeni bir liste['x']geçirilir, bu nedenle değişiklikler varsayılanı etkilemez.- Son çağrıda
func(4)tekrar varsayılan liste kullanılır, şu an[1, 2], ve4eklenir.
Bu şekilde, her print çağrısı, çağrılar arasında değişiklikleri koruyan değiştirilebilir varsayılan argümanın güncel durumunu gösterecektir.