全局变量未更新

时间:2019-07-31 17:25:40

标签: python global-variables counter

我的全局变量没有更新,它输出的全部是0。为什么会发生这种情况?全局变量是不好的做法吗?

counter = 0
def count():
    global counter
    print(counter)
    counter += 1
    return counter

if __name__ == "__main__":
    count()

4 个答案:

答案 0 :(得分:0)

先打印,然后再更改其值。如果您移动

counter += 1

上方print行中,您会看到它显示1

它将仅打印一次,而不是连续打印。由于您不是在某种循环中调用count,因此它只会更新并打印一次结果。

答案 1 :(得分:0)

  • 您要返回更新的计数器值,因此只需打印出来即可。
counter = 0
def count():
    global counter
    print(counter)
    counter += 1
    return counter

if __name__ == "__main__":
    print(count())

答案 2 :(得分:0)

添加一个后必须打印才能看到添加的内容

counter = 0
def count():
    global counter 
    counter += 1
    print(counter)
    return counter

if __name__ == "__main__":
    count()

答案 3 :(得分:0)

您需要某种永久性存储来记住两次运行之间的counter的值。例如,

import os

counter_file = "..."   # some file name

def count():
    global counter
    print(counter)
    counter += 1
    return counter

if __name__ == "__main__":

    if not os.path.exists(counter_file):
        counter = 0
    else:
        with open(counter_file) as f:
            counter = int(f.read())

    count()

    with open(counter_file) as f:
        print(counter, file=f)
相关问题