論文の概要: The Opaque Pointer Design Pattern in Python: Towards a Pythonic PIMPL for Modularity, Encapsulation, and Stability
- arxiv url: http://arxiv.org/abs/2601.19065v2
- Date: Tue, 03 Feb 2026 02:40:48 GMT
- ステータス: 翻訳完了
- システム内更新日: 2026-02-04 18:37:14.88566
- Title: The Opaque Pointer Design Pattern in Python: Towards a Pythonic PIMPL for Modularity, Encapsulation, and Stability
- Title(参考訳): Pythonにおける不透明なポインタデザインパターン:モジュール性、カプセル化、安定性のためのPythonic PIMPLを目指して
- Authors: Antonios Saravanos, John Pazarzis, Stavros Zervoudakis, Dongnanzi Zheng,
- Abstract要約: Pythonライブラリは、内部実装が進化しても安定したパブリックAPIを維持する必要がしばしばある。
本稿では、C++からポインタから実装までのイディオム(PIMPL)を見直し、不透明なデリゲートのPythonパターンとして再解釈する。
既存のランタイムでPythonのPIMPLを使用して、重い依存関係を分離し、遅延インポートをサポートし、パブリックAPIを変更することなく代替バックエンドの選択を可能にする方法を示します。
- 参考スコア(独自算出の注目度): 0.23332469289621785
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Python libraries often need to maintain a stable public API even as internal implementations evolve, gain new backends, or depend on heavy optional libraries. In Python, where internal objects are easy to inspect and import, users can come to rely on "reachable internals" that were never intended to be public, making refactoring risky and slowing long-term maintenance. This paper revisits the pointer-to-implementation (PIMPL) idiom from C++ and reinterprets it as a Pythonic pattern of opaque delegation: a small public object (or module) that delegates its behavior to a separate implementation object treated as internal. We situate this pattern within a broader taxonomy of encapsulation techniques in Python, relate it to existing practices such as module-level indirection, facade objects, and backend dispatch, and identify PIMPL-like structures already used in the standard library and the scientific Python ecosystem. We then show how a Pythonic PIMPL can be used in existing codebases to isolate heavy dependencies, support lazy imports, and enable runtime selection of alternative backends without changing the public API. Finally, we discuss the benefits and trade-offs of the approach and offer practical guidance on when the pattern is appropriate and how to apply it in large, long-lived Python libraries.
- Abstract(参考訳): Pythonライブラリは、内部実装が進化しても安定したパブリックAPIを維持する必要がしばしばある。
内部オブジェクトの検査やインポートが容易なPythonでは、ユーザは公開を意図したことのない"到達可能な内部"に頼るようになり、リファクタリングのリスクが高く、長期的なメンテナンスが遅くなる。
本稿では、C++からポインタ・トゥ・実装(PIMPL)イディオムを再検討し、それをPython的な不透明なデリゲートのパターンとして再解釈する:小さなパブリックオブジェクト(またはモジュール)で、その振る舞いを内部として扱われる別の実装オブジェクトに委譲する。
我々はこのパターンを,Pythonのカプセル化技法のより広い分類分野に配置し,モジュールレベルの間接性やファサードオブジェクト,バックエンドディスパッチといった既存のプラクティスと関連付け,標準ライブラリや科学Pythonエコシステムですでに使用されているPIMPLライクな構造を識別する。
次に、PythonのPIMPLを既存のコードベースでどのように使用して、重い依存関係を分離し、遅延インポートをサポートし、パブリックAPIを変更することなく、代替バックエンドのランタイム選択を可能にするかを示す。
最後に、アプローチの利点とトレードオフについて議論し、そのパターンがいつ適切なタイミングで、どのようにして長寿命のPythonライブラリに適用するかについて実践的なガイダンスを提供する。
関連論文リスト
- OWLAPY: A Pythonic Framework for OWL Ontology Engineering [7.984370990908576]
OWLAPYは、OWL 2.0の作成、修正、シリアライズのための包括的なPythonフレームワークである。
ネイティブのPythonベースの推論と外部Java推論のサポートを統合し、ユーザに柔軟性を提供する。
OWLAPYは、高度なエンジニアリングのための柔軟なPythonライブラリを求めているユーザのための、十分にテストされたソフトウェアフレームワークとして機能する。
論文 参考訳(メタデータ) (2025-11-11T13:32:14Z) - PyVeritas: On Verifying Python via LLM-Based Transpilation and Bounded Model Checking for C [18.52519530244078]
Pythonは汎用プログラミングの主流言語になったが、形式検証のための堅牢なツールが欠けている。
PyVeritasはPythonからCへの高レベルのトランスパイルにLLM(Large Language Models)を利用する新しいフレームワークである。
論文 参考訳(メタデータ) (2025-08-11T16:49:07Z) - PyPulse: A Python Library for Biosignal Imputation [58.35269251730328]
PyPulseは,臨床およびウェアラブルの両方のセンサ設定において生体信号の計算を行うPythonパッケージである。
PyPulseのフレームワークは、非機械学習バイオリサーバーを含む幅広いユーザーベースに対して、使い勝手の良いモジュラーで拡張可能なフレームワークを提供する。
PyPulseはMITライセンスでGithubとPyPIでリリースしました。
論文 参考訳(メタデータ) (2024-12-09T11:00:55Z) - pyvene: A Library for Understanding and Improving PyTorch Models via
Interventions [79.72930339711478]
$textbfpyvene$は、さまざまなPyTorchモジュールに対するカスタマイズ可能な介入をサポートするオープンソースライブラリである。
私たちは、$textbfpyvene$が、ニューラルモデルへの介入を実行し、他のモデルとインターバルされたモデルを共有するための統一されたフレームワークを提供する方法を示します。
論文 参考訳(メタデータ) (2024-03-12T16:46:54Z) - The Calysto Scheme Project [0.0]
Calysto SchemeはScheme in Continuation-Passing Styleで書かれている。
一連の正当性保存プログラム変換を通じてPythonに変換される。
コール/ccを含む標準のScheme機能をサポートしている。
論文 参考訳(メタデータ) (2023-10-16T23:41:21Z) - PyGOD: A Python Library for Graph Outlier Detection [56.33769221859135]
PyGODは、グラフデータの外れ値を検出するオープンソースライブラリである。
外れ値検出のための主要なグラフベースのメソッドを幅広くサポートしています。
PyGODはBSD 2-Clauseライセンスの下でhttps://pygod.orgとPython Package Index (PyPI)でリリースされている。
論文 参考訳(メタデータ) (2022-04-26T06:15:21Z) - Using Python for Model Inference in Deep Learning [0.6027358520885614]
pythonで推論を実行しながら、パフォーマンスとパッケージングの制約を満たす方法を示します。
複数のPythonインタプリタを単一のプロセスで使用して,スケーラブルな推論を実現する方法を提案する。
論文 参考訳(メタデータ) (2021-04-01T04:48:52Z) - SuperSuit: Simple Microwrappers for Reinforcement Learning Environments [0.0]
SuperSuitはPythonライブラリで、すべての人気のあるラッパーとラッパーが含まれており、観察/アクション/リワードに関数を簡単に適用できる。
これは、標準のGym環境仕様と、マルチエージェント環境のためのPettingZoo仕様と互換性がある。
論文 参考訳(メタデータ) (2020-08-17T00:30:06Z) - pyBART: Evidence-based Syntactic Transformations for IE [52.93947844555369]
pyBARTは、英語のUD木を拡張UDグラフに変換するためのオープンソースのPythonライブラリである。
パターンに基づく関係抽出のシナリオで評価すると、より少ないパターンを必要としながら、より高精細なUDよりも高い抽出スコアが得られる。
論文 参考訳(メタデータ) (2020-05-04T07:38:34Z) - OPFython: A Python-Inspired Optimum-Path Forest Classifier [68.8204255655161]
本稿では,OPFythonと表記されるPythonベースのOptimum-Path Forestフレームワークを提案する。
OPFythonはPythonベースのライブラリなので、C言語よりもフレンドリーな環境とプロトタイピングの作業スペースを提供する。
論文 参考訳(メタデータ) (2020-01-28T15:46:19Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。