Обмен переменными между модулями в pyton

В моей программе есть два модуля. Из модуля(А) я передаю переменную в модуль(В), а из модуля(В) мне нужно вернуть переменную в модуль(А).

Это не часть моей программы, а просто такой же пример.

Модуль(А)

import B

a = 4
y = B.y
x = 1

z = x + y

print(z)

Модуль(В)

import A
a = A.a

y = 3 + a

То есть мы переменную а передаем в модуль В, а из модуля В мы должны вернуть переменную y.

Возникает такая ошибка:

partially initialized module 'B' has no attribute 'y' (most likely due to a circular import)

Подскажите пожалуйста, что я делаю не так и как это исправить?


Ответы (2 шт):

Автор решения: Vlad Chapl

Самое простое решение - сделать третий модуль C, который будет содержать ваши глобальные переменные. И результаты вычислений A и B сохранять в C

Может есть более правильное решение?

→ Ссылка
Автор решения: S. Nick

Попробуйте так:

q1448874_a.py

from q1448874_b import func_b


a = 4
y = func_b(a)

#y = B.y
x = 1
z = x + y

print(z)

q1448874_b.py

def func_b(A_a):
#    a = A_a
    y = 3 + A_a
    return y
→ Ссылка