全局变量未更新
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)
我的全局变量没有更新,打印出来的都是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)