Скажем, у меня есть следующие функции в модуле, который называется «firstModule.py»:Python потоков и глобальные вары
def calculate():
# addCount value here should be used from the mainModule
a=random.randint(0,5) + addCount
Теперь у меня есть другой модуль под названием «secondModule.py»:
def calculate():
# addCount value here too should be used from the mainModule
a=random.randint(10,20) + addCount
Я бегу модуль под названием «mainModule.py», который имеет следующее (обратите внимание на глобальную «addCount» вар):
import firstModule
import secondModule
addCount=0
Class MyThread(Thread):
def __init__(self,name):
Thread.__init__(self)
self.name=name
def run(self):
global addCount
if self.name=="firstModule":
firstModule.calculate()
if self.name=="secondModule":
secondModule.calculate()
def main():
the1=MyThread("firstModule");
the2=MyThread("secondModule");
the1.start()
the2.start()
the1.join()
the2.join()
# This part doesn't work:
print firstModule.a
print secondModule.a
Basica lly Я хочу, чтобы значение «addCount» в обоих модулях было одним из «mainModule». После этого, когда потоки закончены, я хочу напечатать значение «a» в обоих из них. Приведенный выше пример не работает. Мне было интересно, как я могу это исправить.
ОК, теперь он работает, но я не могу установить глобальные переменные .. – Gavriel