python ограничить область видимости для import (или шаринг переменных между модулями)
Дано: a.py - главный модуль b.py - движок shared.py - файл с переменными
Вот так сейчас выглядит код: a.py:
import b
import shared
shared.shared_var = 1
b.engine()
b.py
import shared
def engine():
print("работаем с: {}".format(shared.shared_var))
shared.py
shared_var = 0
В чём проблема: a.py вызывается многопоточно, и в итоге начинается каша - переменные внутри shared.py становятся общими для всех потоков.
Мне надо так сделать чтобы у каждого потока была своя область видимости.
Что я пробовал: - Делать import внутри функции def, итог - всё равно тоже самое - Делать не import, а from shared import * - так возникает геморой с тем что вызывая это в a.py я не могу в b.py передать контекст - Тупо всё в функции сувать (все переменные), в итоге на каждый чих мне надо портянку переменных сувать, код раздувается
В общем очень надо сделать так чтобы функции отдельно, а переменные отдельно, и у каждого потока своя область видимости переменных.
PS: вот это уже читал http://ru.stackoverflow.com/questions/358/Глобальные-переменные-в-python