[Gelistirici] Python'da default parametrelerin mutable olmasının sonuçları

Gökçen Eraslan gokcen at pardus.org.tr
22 Kas 2007 Per 16:57:47 EET


Selamlar,

Geçenlerde package-manager'da basit bir çeviri hatasının sonucu olarak 
bulduğum, bugün de python dokümanlarından[1] teyit ettiğim bir durumu yazmak 
istiyorum.

(Alttaki kısmı okumak yerine doğrudan ekteki koda bakabilirsiniz, kodun 
çıktısı 0, 0 veriyor)

Eğer bir fonksiyonda, bir parametrenin default değerini mutable bir object'le 
veriyorsanız liste, dictionary gibi (veyahut bir fonksiyon da olabilir) o 
zaman dikkat etmeniz gereken bir durum ortaya çıkıyor: default parametrenin 
değeri o fonksiyon _tanımı_ çalıştırıldığı zaman belirleniyor ve siz daha 
sonra bu değeri değiştirseniz de parametrenin default değeri bundan 
etkilenmiyor.

Kayıtlarda bulunsun, bilmeyenler öğrensin, herkes mutlu olsun.

Sevgiler.

[1] http://docs.python.org/ref/function.html (altta, kalın yazılarla 
Default... yazan kısım)

-- 
Gökçen Eraslan
-------------- sonraki bölüm --------------
A non-text attachment was scrubbed...
Name: deneme.py
Type: application/x-python
Size: 145 bytes
Desc: kullanılamıyor
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20071122/e1e15c22/attachment-0002.bin>


Gelistirici mesaj listesiyle ilgili daha fazla bilgi