まず、Pythonのクラスの__init__()
関数が値を返すことができないので、悲しいことにこのオプションは利用できません。Python __init__作成に失敗しました
私のコードの構造上、クラスの__init__
機能の中にデータアサーション(およびユーザーに情報を入力するよう促す)があるのが理にかなっています。しかし、これは、オブジェクトの作成が失敗する可能性があることを意味し、これから正常に回復できるようにしたいと考えています。
これを続ける最良の方法は何か不思議でした。私はグローバルなブール値を「有効な構築」フラグとして設定することを検討しましたが、そうしたくはありません。
他のアイデア(再構成のほか、アサーションは初期化の外側で実行され、値は引数として渡されます)?私は基本的に、成功時に0を返し、初期化中に失敗すると-1を返す方法を探しています。 (ほとんどのCシステムコールのように)
例外を発生させます。 –
成功すれば0を返し、失敗した場合は-1を返します。エラーを返すのは悪いです。なぜなら、それらは無視しやすく、扱い易いからです。さらに、ブール値として0と-1を使用すると、混乱が生じて利益が得られません。 Pythonを使ってCコードを書くのは真実ではありません。 – abarnert
@jsbuenoは彼の答えを指摘しているので、クラスインスタンスは作成されていない '__init __()'の中で_初期化されています。そのため、値を '返す 'のではありません。グローバル変数を使用してこれを行うか、例外をスローするのではなく、クラスにデータメンバーを追加してその状態を示し、その値を直接チェックするか、 '__init __()'の後にその値を返すメソッドを呼び出します間違ったことが何か(もしかしたら何か)を判断するために呼び出されました。 – martineau