[英]python: Accessing variable in functions in different modules
我已经将我正在尝试做的事情提炼成最简单的形式。 我有一个运行良好的模块(prog1.py)。 prog1.py 中的 function 访问变量 (yy) OK 没有错误。
#prog1.py
def func():
print (yy)
return()
def main(yy):
print(yy)
func()
return()
#-----------------------------------------------
if __name__ == '__main__':
yy = 200
main(yy)
当我将该模块导入另一个模块(prog2.py)时,相同的 function 无法访问变量(yy)。
#prog2.py
import prog1
yy = 200
prog1.main(yy)
我得到:
名称 'yy' 未在 func 的第 3 行中定义。
执行此操作的“正确”(python)方法是什么?
问题在于func
:
def func():
print (yy)
return()
行print (yy)
尝试访问yy
,但if __name__ == '__main__':
不适用于该模块( __name__
将是prog1
而不是__main__
),因此它不会在 go 内部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
Output:
200
prog1 yy
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.