1

まず第一に、私はすでにこのバグ を調べており、この機能は(一般的に)長い間不可能であることを理解していることを伝えなければなりません。ただし、非常に具体的なユースケースがあります。したがって、私は自分のユースケースを説明し、提案を求めます。

私はインタプリタから実行されるインタラクティブなPythonアプリケーションを書いています。そのため、ユーザーがモジュールをインポートするときに1、2回間違える可能性があります。ユーザーがモジュールを(インポートしたらすぐに)削除する方法を提供できれば、それを希望します。

したがって、モジュールへの参照がすでに他のオブジェクトに組み込まれているという問題の1つはなくなりました。モジュールがまったく使用されていないことを確認したら、モジュールを削除するにはどうすればよいですか?それはまだ技術的に可能ですか?

インポート時にモジュールによって作成されたすべてのオブジェクト/関数を手動で削除する関数を作成できれば、私が望むことは達成されるかもしれないと思っていました。これは本当ですか?

IPythonは、その拡張機能を使用して同様の操作を実行します。それは正しい道ですか?

4

1 に答える 1

3

sys.modulesモジュールは、マッピングに格納されている単なる名前空間、オブジェクトです。

そのモジュールに属するものへの他の参照がない場合は、sys.modulesマッピングから削除して再度削除できます。

>>> import timeit
>>> import sys
>>> del timeit  # remove local reference to the timeit module
>>> del sys.modules['timeit']  # remove module
于 2013-02-03T12:18:20.847 に答える