Python 如何使函数中创建的变量变为全局变量?
我在一个我正在使用的程序中有一个函数,我在这个函数中命名了一个变量,我想使它全局化。例如:Python 如何使函数中创建的变量变为全局变量?,python,function,global-variables,Python,Function,Global Variables,我在一个我正在使用的程序中有一个函数,我在这个函数中命名了一个变量,我想使它全局化。例如: def test(): a = 1 return a test() print (a) 我无法访问“a”,因为它一直说a没有定义 任何帮助都会很好,谢谢。我对您的功能做了一些更改 def test(): # Here I'm making a variable as Global global a a = 1 return a 现在如果你这样做了 pri
def test():
a = 1
return a
test()
print (a)
我无法访问“a”,因为它一直说a没有定义
任何帮助都会很好,谢谢。我对您的功能做了一些更改
def test():
# Here I'm making a variable as Global
global a
a = 1
return a
现在如果你这样做了
print (a)
它输出
1
正如Vaibhav Mule所回答的,您可以在函数中创建一个全局变量,但问题是为什么要这样做 首先,您应该小心使用任何类型的全局变量,因为这可能被认为是一种不好的做法。从函数创建全局函数甚至更糟糕。这将使代码极难阅读和理解。想象一下,您正在阅读使用随机
a
的代码。您首先必须找到这个东西是在哪里创建的,然后尝试找出在程序执行期间它发生了什么。如果代码不小,你将注定失败
所以你的问题的答案是在作业前使用,但你不应该这样做
顺便说一句,如果您想要c++的静态变量特性,请查看问题 首先,有一点很重要,那就是问一个人为什么要这样做?从本质上讲,函数返回的是“局部计算”(通常)。话虽如此,如果我必须在“全局范围”中使用函数的返回“值”,那么“将其分配给全局变量”就更容易了。比如你的情况
def test():
a = 1 # valid this 'a' is local
return a
a = test() # valid this 'a' is global
print(a)
尽管如此,通常还是要问“为什么”我想这样做?你在用python吗?没有标签很难说。如果是这样,可能会有帮助。这是什么语言?如果您还不能发表评论,请将标签添加到您的问题中。与人类不同,谷歌不会厌倦人们一遍又一遍地问同样的问题。正如许多人已经提到的,全局变量是纯粹的邪恶。坚持函数式编程的范例,即函数应该对外部范围没有副作用。