Python'da kullanıcı tanımlı istisnalar ve bunların eksiksiz bir projede nasıl düzenlenmesi gerektiği hakkında bazı sorularım var. Ben modülleri bunları kullanmak için kendi İstisna uygulamak istiyoruzPython: Komple bir projede kullanıcı tanımlı istisnaların organizasyonu
/docs (Documentation)
/apidocs (generated API documentation)
/askindex (my application package)
/test (Unit tests directory)
test_utils.py
... (more tests)
/workers (various worker classes)
communicators.py
processes.py
threads.py
utils.py
main.py (contains the starting point)
data_objects.py (various objects used all around the application)
settings.py (settings of the application)
README.txt
:
aşağıdaki yapıyı (__init__.py
atlanmıştır) sahiptir bazı alt paketleri ile oldukça karmaşık piton projesi var belirli hatalar için işçi paketi.
Bu istisnaları nereye yerleştirmeliyim? Standart istisna sınıfının alt sınıflarını ve diğer istisnalarım için alt sınıfı olan kendi temel istisnamı almam gerektiğini biliyorum. 'İşçiler' altında yeni bir 'istisnalar' modülü oluşturmalı mıyım? Özel durum sınıflarını yükseltildikleri modülde mi? Bu durumda, temel dersimi nereye koymalıyım? Başvuru yapmam uygun mu? Cevap açıktır eğer Python içinde istisnalara yeniyim
, bu yüzden istisna özel bir türü istediğinizde, belirli olduğunu ben kendi iş ile buldum ... Genelde
Hızlı cevap için teşekkürler. __init__.py modülünü düşünmemiştim. Paket belgelerini ve metalarını dışında asla neyin içine konacağını gerçekten bilmedim. Örneğinizin ardından, istisna, food.RottenException olarak mı referans alınacak? –
@Marc: yes. Büyük modüller için ortak bir model, onları ayrı modüllere bölmek ve '__init __. Py' paketlerini tekrar bir araya getirmek için göreceli ithalat içermek zorundadır (genellikle xyz import * 'den xyz '__all__' ile tanımlanır). Bu durumda, muhtemelen geçerli değildir. Potansiyel olarak "ithalatçı" 'it os.path' ifadesini ima edecek şekilde, 'it' 'yolu' 'gibi' iletişimciler, süreçler, iş parçacıkları, araçlar 'ithal etmek isteyebilirsiniz. –
@Marc: 'Gıda' örneğinin bir adım ötesinde, 'Gıda Maddesi' sınıfı '__init __. Py' ve 'food.fruit' gıdaları ithal edecek ve daha sonra 'sınıf Domates' olacaktı (food.Foodstuff).) '. Dikkatli olduğunuz ve 'gıda ithalatı Gıda Maddelerinden 'kullanmadığınız sürece, döngüsel referans tamamdır (bakınız [effbot'ta] [http://effbot.org/zone/import-confusion.htm#circular] -imports)). –