Teorik olarak, bazen bir varsayılan ayarlamak ve bazen yapmak istemezseniz setdefault
yine de kullanışlı olacaktır . Gerçek hayatta böyle bir kullanım örneğiyle karşılaşmadım.
Bununla birlikte, ilginç bir kullanım örneği standart kitaplıktan gelir (Python 2.6, _threadinglocal.py):
>>> mydata = local()
>>> mydata.__dict__
{'number': 42}
>>> mydata.__dict__.setdefault('widgets', [])
[]
>>> mydata.widgets
[]
Kullanmanın __dict__.setdefault
oldukça faydalı bir durum olduğunu söyleyebilirim .
Düzenleme : Bu olduğu gibi, bu standart kitaplıktaki tek örnektir ve bir yorumdadır. Öyleyse varlığını haklı çıkarmak için yeterli bir durum yeterli olmayabilir setdefault
. Yine de, bir açıklama:
Nesneler niteliklerini öznitelikte saklar __dict__
. __dict__
Gerçekleştikçe , öznitelik nesne oluşturulduktan sonra herhangi bir zamanda yazılabilir. Ayrıca bir sözlük değil defaultdict
. Genel durumda objelerin sahip olması mantıklı değildir __dict__
bir şekilde defaultdict
bu nitelikleri olarak tüm yasal tanımlayıcıları sahip her nesneyi yapacak çünkü. Dolayısıyla, Python nesnelerinde __dict__.setdefault
, yararlı olmadığı düşünülürse, onu tamamen silmenin dışında, herhangi bir değişiklikten vazgeçemem .