Проблема в func
:
def func():
print (yy)
return()
Линия print (yy)
пытается получить доступ к yy
, но if __name__ == '__main__':
не будет иметь значение true для этого модуля (__name__
будет prog1
не __main__
), следовательно, он не войдет внутрь if
:
if __name__ == '__main__':
yy = 200
main(yy)
Следовательно, yy
не будет определен.
Подробнее о if __name__ == '__main__':
в этом вопрос .
Согласно тому, что вы упомянули в комментариях:
#prog1.py
yy = 'prog1 yy'
def func():
print(yy)
def main(yy):
print(yy)
func()
if __name__ == '__main__':
yy = 200
main(yy)
# prog2.py
import prog1
yy = 200
prog1.main(yy)
Прогон:
python prog2.py
Вывод:
200
prog1 yy