Python3:使用函数中定义的变量

时间:2013-08-19 13:19:09

标签: function variables python-3.x

我对在Python3中看到的这种行为感到困惑,我想知道是否有办法绕过它或者我做错了什么。

我在命令行和脚本中看到了这一点。我定义了一个名为“SETVAR()”的函数。 SETVAR()将使用getpass.getuser()(已导入)并将输出保存到变量USER。该函数被执行,但是当打印USER时,我收到一个错误,指出该变量未定义。如果我在函数之外定义变量,一切都很好。但是,在我的脚本中,我想使用在函数中定义和生成的变量。可以吗?

>>> def SETVAR():
...     USER = getpass.getuser()
... 
>>> SETVAR()
>>> print(USER)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'USER' is not defined

>>> USER = getpass.getuser()
>>> print(USER)
collier

问题:如何在命令行或脚本中使用已定义和执行的函数中定义和创建的变量?

1 个答案:

答案 0 :(得分:2)

即使您在函数内定义和创建变量,也可以让Python知道您希望结果变量可以全局访问;

>> def SETVAR():
...     global USER
...     USER='olle'
... 
>>> SETVAR()
>>> print(USER)
olle
>>> 
编辑:我倾向于在评论中同意@Wooble,在大多数情况下,您可能需要三思而后行。对于简单的脚本,它可能非常有用,但对于更复杂的情况,它可能使代码难以遵循。