from threading import Thread
import time
def print_k():
while true:
if main.k % 2 == 1: # ditto
print(main.k, "is even.") # <-- my problem is HERE (Ignore all the other stuff)
time.sleep(2)
def main():
k = 1
while k != 200:
k += 1
print k
time.sleep(0.5)
if __name__ == '__main__':
Thread(target=print_k).start()
Thread(target=main).start()
в этом сценарии (только пример, игнорировать все реалистичную функциональность) Я пытаюсь запустить main()
, который добавляет до 200 и выводит его на экран, а в print_k
, я печать main
' s, k. я исключение подняло, что неудивительно, и мне интересно, как я могу получить доступ к переменному отдельной функции от другой функции (они оба работают в то же время, кстати, следовательно, модуль Threading.)Доступ к переменной некоторой функции из другой функции
В качестве побочного примечания 'true' является' NameError'. И использование Python 3.x-style 'print' в 2.x будет уродливым (вы увидите' (2, 'even') 'вместо' 2 is even') – abarnert