擅长:python、mysql、java
<p>carcigentitate是非常正确的,但是这里有一些关于这里发生的事情的注释,以及一些将来可以避免这种情况的实践</p>
<pre><code>programExit = False
def programQuit(programExit=False):
for event in pygame.event.get():
if event.type == pygame.QUIT:
programExit = True # Issue 1
while not programExit:
programQuit()
</code></pre>
<p>问题1是这个赋值是在函数的作用域中创建一个新变量并设置它的值。它不会更改模块级变量programExit的值</p>
<p>一个更好的方法是让函数像这样将结果作为返回值传回</p>
<pre><code>def programContinue():
for event in pygame.event.get():
if event.type == pygame.QUIT:
return False
return True
while programContinue():
pass
</code></pre>
<p>同样通过反转函数返回的布尔逻辑,我认为事情变得更清楚了,我们可以去掉“not”。用这种方式表达while子句对我来说似乎更清楚一些。“pass”语句可以用一些日志记录或C.\答案的显示更新来代替</p>