我的全局变量没有更新,它输出的全部是0。为什么会发生这种情况?全局变量是不好的做法吗?
counter = 0
def count():
global counter
print(counter)
counter += 1
return counter
if __name__ == "__main__":
count()
答案 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)