每个函数的全局变量

时间:2018-02-22 21:10:30

标签: python function global-variables nameerror

我有很多功能,他们都编辑了一些变量,但我希望每个人都编辑以前编辑过的变量(通过先前的功能):

text = "a"    
def a():
        text + " hi"
        print(text)
def b():
       text + " there"
       print(text)
def main():
      a()
      b()
main()

^所以当运行main时我希望它出现:

>>a hi
>>a hi there

我尝试过全球,但我似乎无法正常工作

2 个答案:

答案 0 :(得分:1)

即使使用global,您仍然必须为全局变量重新分配新值 - 在您的情况下texttext + " hi"只是创建一个新字符串并将其抛弃。使用global text,然后执行text = 'text' + <string>

text = "a"    

def a():
    global text
    text = text + " hi"
    print(text)

def b():
    global text
    text = text + " there"
    print(text)

def main():
      a()
      b()
main()

以上现在输出:

a hi
a hi there

答案 1 :(得分:0)

使用global重新分配文字变量

text = "a"    
def a():
    global text
    text += " hi"
    print(text)
def b():
    global text
    text += " there"
    print(text)
def main():
    a()
    b()
main()

结果

a hi
a hi there