#python #python-3.x #class #dictionary #global-variables
#python #python-3.x #класс #словарь #глобальные переменные
Вопрос:
У меня есть класс с именем A, который имеет словарь с именем env_vars. Я хочу получить доступ к env_var dict в двух других классах.
например. File-> a.py
from b import B
from c import C
class A:
env_vars = {}
B().print_b()
C().print_c()
Файл-> b.py
from a import A
class B:
def b(self):
print(A.env_vars)
A.env_vars['b'] = 2
print(A.env_vars)
def print_b(self):
print(A.env_vars)
Файл-> c.py
from a import A
class C:
def c(self):
A.env_vars['c'] = 3
def print_c(self):
print(A.env_vars)
Я могу получить доступ к классу env_var dict в классах B и C, но получаю ошибку импорта циклического импорта. Как устранить эту ошибку.
Комментарии:
1. Вы бы использовали
import a
, а неimport A
, для начала.A
было бы атрибутомa
. Из того, что вы показали, нет причин для импортаb
илиc
изa.py
, посколькуA
это ни от чего не зависит в этих модулях.2. Это потому, что вы также импортируете B и C.
a.py
3. В реальной реализации я использую некоторые функции из классов B и C.
4. Затем вам нужно перепроектировать свои модули, и вы недостаточно показали, что вам нужно , чтобы мы могли помочь с этим.
5. Если существует зависимость между тремя классами, почему бы не поместить их в один и тот же файл? Проверьте эту ссылку на исправление циклического импорта.