在python中为全局变量赋值

在python中为全局变量赋值,python,Python,对不起,这是个初学者的问题。在下面的代码中,我得到的输出是“原始”而不是“函数”。name的值在通过函数后没有改变吗?谢谢 global name name = "Original" def test(): name = "Function" test() print(name) global声明位于要应用它们的函数内部,而不是顶层 name = "Original" def test(): global nam

对不起,这是个初学者的问题。在下面的代码中,我得到的输出是“原始”而不是“函数”。name的值在通过函数后没有改变吗?谢谢

global name
name = "Original"

def test():
    name = "Function"

test()
print(name)

global
声明位于要应用它们的函数内部,而不是顶层

name = "Original"

def test():
    global name
    name = "Function"

test()
print(name)

在函数中使用全局关键字

name=“Original”#定义名称
def test():#定义我们的函数
全局名称#此函数现在可以更改名称
name=“Function”#更改值
test()#运行函数
打印(名称)#返回函数
我假设
global
需要在函数中,这样您就可以这样做,函数可以使用文本而不影响文本变量:

text = "Original"

def test():
    global text
    text = "Function"

def printText(text):
    textToPrint = text # use text var without any issues in this function
    print(textToPrint)

test()
print(text)

您可以在这里阅读更多信息,

不,没有<
test
中的code>name是一个局部变量,在python中为变量赋值时总是默认值。如果希望更改,则需要使用
test
函数中的
global
语句。注意,
global name
在全局作用域中完全不起作用,全局作用域中的任何赋值都将是全局的。除此之外,您真的不应该使用这样的可变全局状态。请重复并从下面开始。堆栈溢出不是为了替换现有的文档和教程。明白了。谢谢朋友
    name = "Original" #global variable
    
    
    def test():
        #to update the global value you have to declare it here
        global name
        name = "Function"
    
    test()
    print(name)