Используйте один и тот же dict внутри разных классов в python

#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. Если существует зависимость между тремя классами, почему бы не поместить их в один и тот же файл? Проверьте эту ссылку на исправление циклического импорта.