Я хочу изменить некоторые классы в стандартной библиотеке, чтобы использовать другой набор глобальных переменных, аналогичный тем, которые используют другие классы в этом модуле.
Этот пример является только примером:
# 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 ()
, он вызовет добавьте
к объекту с именем my_global
. Но теперь я хочу создать новый модуль, импортировать в него B
и B
использовать my_global
из модуля, в который он был импортирован, вместо my_global
из модуля B
был определен изначально.
# module_b.py
from module_a import B
my_global = []
Я изо всех сил пытаюсь объяснить свою проблему, вот моя предыдущая попытка, которая на самом деле требовала чего-то совершенно другого:
Пример был запрошен из стандартной библиотеки:
Многие (может быть, все?) Классы в модуле threading
используют глобальные объекты, такие как _allocate_lock
], get_ident
и _active
, определенные здесь и здесь . Эти глобальные переменные нельзя изменить, не изменив их для всех классов в этом модуле.