2010-04-11 9 views
11

gui adı verilen bir pakette kendi modüllerinde çeşitli GUI sınıflarına sahip bir wxPython uygulamasına sahibim.Bir Python paketindeki modüller içindeki sınıfları doğrudan paketin ad alanında görüntüleme

:

from gui.mainwindow import MainWindow 

Bu benim paket ad doğrudan sınıfını içe etmek gui paketi için __init__.py dosyayı değiştirdi bu yüzden bana dağınık görünüyordu şu şekildedir: Bu ayar ile, ana penceresini ithal bitmiş olacaktır

from gui import MainWindow 

Bu daha iyi görünüyor:

from mainwindow import MainWindow 

Bu beni böyle ana penceresini ithalat sağlar bana estetik olarak ve bence ne yaptığımı daha yakından temsil ediyor (sınıfını gui "ad alanı"). gui paketini yapmamın nedeni, tüm GUI öğelerini bir arada tutmaktı. Tek bir gui modülünü kolayca yapabildim ve içindeki tüm GUI sınıflarını doldurabilirdim, ama bunun yönetilemez olacağını düşünüyorum. Paket artık bir modül gibi çalışıyor görünmektedir, ancak sınıfları kendi modüllerine ayırmamı sağlar (yardımcı işlevler vb. Ile birlikte).

Bütün bunlar beni bir şekilde küçük görüyor, başkalarının fikir hakkında ne düşündüklerini görmek için dışarı atabileceğimi düşündüm.

+0

Sadece bir soru sormak istemiyorsunuz, gerçekten bir soru sormuyorsunuz ... Bu gerçekten StackOverflow için doğru değil. (Ne kadar değerli olsa da, sık sık yapılan bu tür bir şeyi görüyorum ve bunun yanlış bir şey olduğunu düşünmüyorum) –

cevap

4

Eh, bu oldukça yaygın desen ve ben de Eğer __init__.py dosyaları içinde şeyler içerebilir neden nedeni olduğunu düşünüyorum.
Onay olarak, yalnızca __init__.py dosyalarındaki içe aktarma ifadeleri için grep ve standart kitaplıkta ve ortak paketlerde yaygın olarak kullanıldığını göreceksiniz.

+0

Haklısınız. Sadece wxPython'ın '__init __. Py' dosyasına baktım ve aynı şeyi yapıyorlar. –

İlgili konular