Bunun nedeni, Python'daki derlemenin açıklayıcı kod çalıştırılarak gerçekleştirilmesidir.
Biri derseniz
def f(x = {}):
....
her seferinde yeni bir dizi istediğiniz oldukça açık olacaktır.
Ama ya dersem:
list_of_all = {}
def create(stuff, x = list_of_all):
...
Burada, çeşitli listelere bir şeyler oluşturmak ve bir liste belirtmediğimde tek bir global catch-all'a sahip olmak istiyorum sanırım.
Ancak derleyici bunu nasıl tahmin ederdi? Peki neden denesiniz? Bunun adlandırılıp adlandırılmadığına güvenebiliriz ve bazen yardımcı olabilir, ama gerçekten sadece tahmin ederdi. Aynı zamanda, denememek için iyi bir neden var - tutarlılık.
Olduğu gibi, Python sadece kodu yürütür. List_of_all değişkenine zaten bir nesne atanır, böylece bu nesne, herhangi bir işleve yapılan çağrı burada adlandırılan yerel bir nesneye başvuru alacağı şekilde x değerini varsayılan olan koda referans olarak geçirilir.
Adlandırılmamış adı belirtilen durumdan ayırmak istersek, derleme yürütme kodunu çalışma zamanında yürütüldüğünden önemli ölçüde farklı bir şekilde içerirdi. Bu yüzden özel davayı yapmıyoruz.