Bir modülü içe alan bir modülüm var, ancak bazı durumlarda içe aktarılan modül mevcut olmayabilir. Modül içe aktarıldıktan sonra, bir sınıfın içe aktarılan modülden bir sınıf miras alır. Modül mevcut değilse, ImportError
istisnasını yakalayacak olsaydım, Python'un modülün geri kalanını ayrıştırmasını nasıl durdurabilirim? Bu mümkün değilse başka çözümlere açığım. Ayrıştırmayı bitirmeden önce bir modülden nasıl çıkılır?
try:
from skynet import SkyNet
except ImportError:
class SelfAwareSkyNet():
pass
exit_module_parsing_here()
class SelfAwareSkyNet(SkyNet):
pass
bunu yapmak için sanırım tek yönden
geçerli:: İşte temel örneği (selfaware.py) 'dirselfaware.py
modülünü içe aktarmadan önce, kontrol edersenizskynet
modül kullanılabilir ve basitçe bir saplama sınıfı geçirin veya oluşturun. Bu,selfaware.py
'un birden çok kez içe aktarılması durumunda DRY'ye neden olur.selfaware.py
içinde,try
bloğu ile tanımlanan sınıf var. ör .:try: from skynet import SkyNet class SelfAwareSkyNet(SkyNet): pass except ImportError: class SelfAwareSkyNet(): pass
çözümünüz nesi var? Çalışmıyor mu? Bir hata mı geliyor? –
Burada yankı var mı? Tüm yinelenen cevaplarda ne var? Ve her iki yeni kopyanın neden eskiden daha yüksek puanları var? –
@MuMind Sanırım hiper-notanın cevabının, başlangıçta hatalı olduktan sonra düzenlenmiş olduğunu fark etmemiştim. Cevabı kabul ettim. –