複数の呼び出し元アプリケーションによってインポートおよび使用される Python クラスを作成しています。呼び出し元の各アプリは、起動時にクラスを 1 回 (そして 1 回だけ) インスタンス化し、アプリが閉じられるまでそのインスタンスを維持するように記述されます。
インスタンス化の成功には、依存関係とチェックのかなり長いリストが含まれます。たとえば、特定のフォルダーに特定の MS Access ファイルが存在すること、その DB を更新する機能、別のフォルダーにあるログ ファイルへの読み取り/書き込み特権を持つこと、呼び出し元のアプリに関連する特定の他のフォルダー...アイデアが得られます。私がやりたいことは、クラスのインスタンス化時にこれらすべての依存関係をチェックすることです。それらのいずれかが失敗した場合、クラス内のコードはユーザーにエラー ポップアップを提供し、クラスのインスタンス化を控えます。呼び出し元のアプリは、クラスがインスタンス化されていないことを検出し、単に終了します。
私は他のさまざまなスレッドに根ざしており、私が見つけたオプションは、Factory を作成するか (必要なものが誇張されているように見えます)、__new__
メソッドをオーバーライドすることです (他の議論ではトリッキーになる可能性があります...ほとんどすべて私が見つけたコードサンプルには、それが機能しないすべての状況を警告するコメントの長い列がありました)。
では、推奨されるプラクティスの観点から、これらのいずれかが進むべき道でしょうか? または、私が達成しようとしていることに最適な他の選択肢はありますか?