標準ライブラリのいくつかのクラスを変更して、そのモジュールの他のクラスが使用するグローバルとは異なるセットを使用したいと考えています。
例
この例は単なる例です。
# module_a.py
my_global = []
class A:
def __init__(self):
my_global.append(self)
class B:
def __init__(self):
my_global.append(self)
この例では、 のインスタンスをA
経由で作成すると、 という名前のオブジェクトA()
が呼び出されます。しかし今、私は新しいモジュールを作成し、それにインポートし、元の定義されたモジュールからではなく、インポートされたモジュールから使用したいと考えています。append
my_global
B
B
my_global
my_global
B
# module_b.py
from module_a import B
my_global = []
関連している
私は自分の問題を説明するのに苦労しています。これは、実際にはまったく異なることを尋ねた私の以前の試みです:
Update0
- 上記の例は、私が達成しようとしていることを説明するためのものです。
- クラスには変数スコープがないため (たとえば C++ とは異なり)、グローバル マッピングへの参照はクラスに格納されず、定義時にすべての関数にアタッチされると思います。
アップデート1
標準ライブラリから例が要求されました。
モジュール内のクラスの多く (おそらくすべて?) は、hereおよびhereで定義された、、およびthreading
などのグローバルを使用します。そのモジュール内のすべてのクラスを変更せずに、これらのグローバルを変更することはできません。_allocate_lock
get_ident
_active