Planet Python 日本語
フォロー
トレイ・ハナー:Pythonのsysモジュールの再編成
Pythonのsysモジュールは、多くの雑多なアイテムを保持する「ジャンクの引き出し」として説明されています。この記事では、もしsysモジュールが今日ゼロから設計されたら、どのようなものになるかを考察します。現在、sysには100を超える属性があり、その多くが関数であるため、名前空間が混雑しています。これを解決するために、著者はsysを9つのサブモジュールに再編成することを提案しています。提案されているサブモジュールには、コマンドライン引数のためのsys.cli、モジュール関連の関数のためのsys.imports、標準入出力のためのsys.io、インタラクティブプロンプト設定のためのsys.repl、システムおよびインストールの詳細のためのsys.interpreter、メモリ管理ツールのためのsys.memory、例外処理のためのsys.exceptions、プロファイリングとイントロスペクションのためのsys.profile、およびインタプリタの動作のためのsys.runtimeが含まれます。これらの提案されたサブモジュール内のいくつかの属性は、既存の標準ライブラリモジュールと類似しており、さらなる再編成の可能性を示唆しています。この記事では、このような再編成を実際に実装することの大きな課題を認識しています。主に、移行期間と、現在のsysのフラットな名前空間に依存する既存のコードの後方互換性の維持が大きな障害となります。モジュールレベルの属性処理を含む技術的な解決策が議論されており、互換性のために古いフラットな名前空間をどのように維持できるかを示しています。しかし、著者は、既存のコードの膨大な量と、Pythonコミュニティが、絶対に必要な場合を除いて、このような基本的な変更を行うことに一般的に消極的であるため、この再編成が決して起こらないだろうと疑っています。開発者にとっての主な教訓は、サブモジュールが大規模な「ユーティリティ」モジュールのための有用な整理ツールとなり得るということです。