我确信这非常简单,但我一直无法让它工作。
我想将模块'user_module'中的x
函数中的值返回到我的'main_program'test
文件:用户模块
def test ():
x =5
return x
文件:主程序
import user_module
user_module.test()
print x
但是上面的代码不起作用:(我收到以下错误
NameError: name 'x' is not defined
我确信这非常简单,但我一直无法让它工作。
我想将模块'user_module'中的x
函数中的值返回到我的'main_program'test
文件:用户模块
def test ():
x =5
return x
文件:主程序
import user_module
user_module.test()
print x
但是上面的代码不起作用:(我收到以下错误
NameError: name 'x' is not defined
在您的模块中, x 在功能测试中定义。
这意味着它仅在该函数的范围内可用。
即使您尝试从模块中访问 x,您也会收到名称错误,因为 x 没有在该模块中全局定义。
这不起作用:
文件:user_module
def test ():
x =5
return x
print x
产生一个名称错误。
(这并不意味着一般的解决方案是让所有东西都在全球范围内可用......)
要解决您的问题,您可以创建一个名为 x 的变量。
您将不得不像这样更改您的代码:
import user_module
x = user_module.test()
print x
或者,您可以只打印 test() 的结果,而不是打印 x。
print user_module.test()
这是因为x
是在函数中定义的,这意味着它在函数的范围内,而不是在模块的范围内。但是你的函数正在返回它——这很好:)。所以使用这些解决方案之一来获得x
:
1.
import user_module
print user_module.test()
2.
如果您想x
从一个模块传递到另一个模块,那么您user_module
将如下所示:
x = 5
并在主脚本中执行以下操作:
import user_module
print user_module.x
3.
或者你可以在你的user_module
:
def test():
x = 5
return x
x = test()
现在在你的主脚本中你这样做:
import user_module
print user_module.x