Python'daki modül düzeyi sabit yineleme listeleri yerine tupl'leri kullanmak iyi bir stil midir? Benim program çalışırkenTuples, Python'daki modül seviyesi sabitleri için listelerden mi?
IMPORTANT_STRINGS = [
"Hello world!",
"Goodbye world!",
"Foo...",
# etc --- there are about 40 entries
]
IMPORTANT_STRINGS
modifiye asla: Örneğin, benim girişte aramak gerekir dosyama üstündeki önemli dizeleri bir listesi var. Bir taraftan, immutabilitenin iyi olduğunu ve mümkün olduğunda değişmez veri yapılarını tercih etmem gerektiğini düşündüğümden, bunun yerine bir tuple kullanmalıyım.
Diğer yandan, bu tupllerin sadece değişmez listelerden daha fazlası olduğunu düşünüyorum: onlar çiftler, üçlüler, vs. gibi şeyleri geçtiğinizde kullanılması gereken heterojen koleksiyonlar için --- sabit boyutlu şeyler büyüklüğü ne oldukları için önemlidir. Ben de hiç böyle sabitleri için dizilerini kullanan vahşi Python kodunu gördüğüm sanmıyorum ve bunu söylemek bana göze gerçekten tuhaf görünüyor:
IMPORTANT_STRINGS = (
"Hello world!",
etc
)
sabir değişmezlik anlamına gelir, bu yüzden şahsen bir tuple kullanacağım ... bunun için tanımlanmış “en iyi uygulama” olmadığını gayet iyi biliyorum, bu yüzden hangisini kullanırsanız kullanın daha fazla –
Bunları neden herhangi bir yapıda gruplandırıyorsunuz? herşey? Hiç onların üzerinde yinelenecek misin? Onlara hiç endeksle ulaşıyor musunuz (ve eğer öyleyse, bu gerçekten onlara ulaşmanın en iyi yolu mu?) Neden dize sabitlerini tanımlıyorsunuz? Genelde dize sabitleri uzun koleksiyonları sadece bana kötü bir kod gibi görünüyor, gerçekten istediğiniz bir nesne üzerinde bir tür öznitelik ya da anahtar kelime argümanları olurdu. [Yazılı bir kod] (http://c2.com/cgi/wiki?StringlyTyped) bir belirtisi olma eğilimindedir. – ArtOfWarfare
Zehirli olarak - listeler aynı türdeki tüm nesnelerden oluşmalıdır. Tupllerin böyle bir kısıtlaması yoktur - farklı tiplerde nesneler olabilir veya olmayabilir. Ancak değişkeniniz "IMPORTANT_STRINGS" olarak adlandırıldığından, kullanıcı için koleksiyonun türü ne olursa olsun, "string" türünde olan değerlerin oldukça açık olduğunu düşünüyorum. – ArtOfWarfare