【发布时间】:2021-01-17 22:14:52
【问题描述】:
def dinner_completed():
counter=0
if counter==0:
k=False
if counter==1:
k=True
counter+=1
print('counter',counter)
return k
while not dinner_completed():
print('1')
每次我在 while 循环中检查函数时,计数器都会被初始化为 0 。我不想使用全局变量,我的函数必须只返回一次 False,其余时间返回 True。
【问题讨论】:
-
了解为什么您不想要全局变量会有所帮助。用例似乎与它完全匹配。你想避免全局变量的什么行为?您是否只想避免使用 global 关键字或类似的构造,例如可变全局变量或类属性?
-
对于这个特定的示例,您可以使用生成器函数。
-
我只想在控制台中打印 '1' 一次,而不是无限循环运行
-
@KenY-N 我不想把函数名改成 foo
标签: python python-3.x