2011-06-11 44 views
5

Çalıştığım oyunda zor bir sorun yaşıyorum. Bunu geliştirmek için Pygame kullanıyorum. Ben varsayılan __dict__ nesne değişkeni kullanan asla geliştiricilerden biri olmak; Bir nesnenin sahip olabileceği değişkenleri açıklığa kavuşturmak için her zaman __slots__'u tanımlarım (bir yapılandırma dosyasından gereken değişkenleri belirlemek için yuvaları okuyan bir sınıf bilgim var).Python - Bir alt sınıfta __dict__ sınıf değişkeni yaratılmasının bastırılması

Her neyse, bu çabanın bazı derslerimde çalışmadığını fark ettim; hala bir __dict__ değişkenine sahipler ve __slots__'u açıkça tanımlasalar bile, atanmış isteğe bağlı özniteliklere sahip olabilirler. Bunun nedeni, __dict__ olan pygame.sprite.Sprite öğesinden miras almalarıdır. Eğer durum buysa, bu kararın oluşturulmasını nasıl önleyebilirim? (Açıkça __slots__'u tanımlamak gerekiyordu) Ya da neden hakkında yanılsamalı mıyım? Herhangi bir anlayış için teşekkürler; Bu sorunla ilgili bilgileri aramalar yoluyla bulmak zor.

+0

Bunu yaptığınızı açıklarsanız daha iyi bir çözüm olabilir. – ninMonkey

cevap

6

keyfi özelliklerini ve bunların __dict__ kabı bastırmak için tek yol, sen ve aynı yapan bir sınıftan miras olarak __slots__ kullanmaktır. Bir __dict__ olan bir sınıfın bir alt sınıfı her zaman bir __dict__ olacaktır. Bunun etrafındaki tek yol, bu sınıftan miras almamaktır (ancak, örneğin, composition kullanın.)

+0

Ah, bu talihsiz bir şey. Hızlı cevabınız için teşekkür ederim. – dpitch40

İlgili konular