我在我正在工作的程序中有一个函数,我在这个函数中命名了一个变量,我想把它变成全局的。例如:
def test():
a = 1
return a
test()
print (a)
我只能访问“a”,因为它一直说a未定义。
任何帮助都会很棒,谢谢。
答案 0 :(得分:3)
我已经对你的功能做了一些改变。
def test():
# Here I'm making a variable as Global
global a
a = 1
return a
现在,如果你这样做
print (a)
输出
1
答案 1 :(得分:2)
正如Vaibhav Mule回答的那样,你可以在函数内部创建一个全局变量,但问题是你为什么这样做?
首先,您应该小心使用任何类型的全局变量,因为它可能被视为this的不良做法。从函数创建全局更糟糕。这将使代码极不可读且难以理解。想象一下,您正在阅读使用某些随机a
的代码。首先必须找到创建该事物的位置,然后尝试找出程序执行期间发生的事情。如果代码不小,你将注定失败。
所以答案是你的问题只是在分配之前使用global a
,但你不应该。
BTW,如果你想要c ++的静态变量这样的功能,请检查this提问。
答案 2 :(得分:1)
首先,重要的是要问'为什么'会想要那个?本质上,函数返回的是“本地计算”(通常)。话虽如此 - 如果我必须在“全局范围”中使用函数的返回'value',那么将它分配给全局变量会更容易。例如在你的情况下
def test():
a = 1 # valid this 'a' is local
return a
a = test() # valid this 'a' is global
print(a)
但是,重要的是要问'为什么'我想这样做,通常?