Вам нужно изменить способ работы в y.py
:
import threading
# Run every 3 seconds to update the z variable
delay = 3
z = 0
def foo():
global z
z = z + 1
print("inner",z)
# This thread run continuously and should not
# block the other threads
threading.Timer(delay,foo).start()
foo()
print("outer",z + 10)
if __name__ == "__main__": # Should avoid the importation to modify the z variable content
foo()
if __name__ == "__main__":
- это код драйвера Более подробную информацию смотрите здесь
you следует использовать это для вызова функции, а не для вложения функции внутри нее.
изменить x.py
на:
import y
foo = y
print(foo.z)
вывод из x.py
:
inner 1
outer 11
1
inner 2
inner 3
...
Я немного изменил ваш код, чтобы ускорить его, отвечая на него, так что он может не дать желаемого результата, поэтому вам может потребоваться изменить его, но ваша проблема должна быть исправлена.