Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使函数中创建的变量变为全局变量?_Python_Function_Global Variables - Fatal编程技术网

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吗?没有标签很难说。如果是这样,可能会有帮助。这是什么语言?如果您还不能发表评论,请将标签添加到您的问题中。与人类不同,谷歌不会厌倦人们一遍又一遍地问同样的问题。正如许多人已经提到的,全局变量是纯粹的邪恶。坚持函数式编程的范例,即函数应该对外部范围没有副作用。