全局变量未更新

Global Variable is not Updating

我的全局变量没有更新,打印出来的都是0。为什么会这样?全局变量是不好的做法吗?

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

if __name__ == "__main__":
    count()

你先打印它,然后才改变它的值。如果你移动

counter += 1

print 行上方,您会看到它打印 1.

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

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

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

加完后需要打印才能看到加了

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

if __name__ == "__main__":
    count()

您需要某种永久存储来记住运行之间 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)