oluşturmak için geri dönüş hatası İlk kapalı, Python'daki bir sınıfın __init__()
işlevinin bir değer döndüremeyeceğini biliyorum, bu nedenle bu seçenek kullanılamıyor.Python __init__
Kodumun yapısı nedeniyle, sınıfın __init__
işlevinin içinde veri bildirimleri (ve kullanıcının bilgi vermesini istediği) olması mantıklıdır. Bununla birlikte, bu, nesnenin yaratılmasının başarısız olabileceği anlamına gelir ve ben bundan hoş bir şekilde kurtulabilmek isterim.
Bununla devam etmenin en iyi yolunun ne olduğunu merak ediyordum. Küresel bir booleanı 'geçerli inşaat' bayrağı olarak seçmeyi düşündüm, ama yapmamayı tercih ediyorum.
Diğer tüm fikirler (yeniden yapılanmaların yanı sıra, yeniden başlatmaların dışında başlatmalar gerçekleşebilir ve değerler argüman olarak iletilir)? Temel olarak, başarıya dönüşün 0 olması için bir yol arıyorum ve başlatma sırasında hata durumunda -1 değerini döndürüyorum. (Çoğu C sistem çağrısı gibi)
Bir istisnayı kaldırın. –
Başarı durumunda 0 döndürme ve başarısızlık durumunda -1 çok Pythonic değildir. Hata geri dönüşleri kötüdür, çünkü göz ardı edilmeleri kolaydır ve işlemek için ayrıntılıdır. Bunun da ötesinde, 0 ve -1 değerini boolean değerleri olarak kullanmak, hiçbir yararı olmayan karışıklığı ekler. C kodu yazmak için Python kullanmak doğru değildir. – abarnert
As @jsbueno cevabında dikkat çekiyor, sınıf örnekleri _initialized_ '__init __()' de oluşturulamıyor, bu yüzden bir değer döndürmüyor. Başarısızlıkları algılamak veya bir istisna atmak için global bir değişken kullanmak yerine, durumunuzu belirtmek için sınıfınıza bir veri elemanı ekleyebilir ve daha sonra değerini doğrudan kontrol edebilir veya __init __() 'değerinden sonra değerini döndüren bir yöntem çağırabilirsiniz. yanlış olduğunda bir şey (ve muhtemelen ne) belirlemek için çağrıldı. – martineau