每当我开始游戏并加载我的菜单时,我都会收到错误"语法警告:名称'完成'被分配到全球声明"之前。我该如何解决?我没有破坏我的游戏,但任何错误都应该修复。我已经删除了下面的代码,只显示基本代码。
<HeaderedContentControl Content="{Binding DateTimeVale,
Converter={StaticResource formattableConverter}
ConverterParameter={StaticResource myParameter}}">
</HeaderedContentControl>
答案 0 :(得分:4)
这里的问题是您不止一次声明global
变量。全局应在函数开始时声明。阅读更多here。要解决此问题,只需将global currentlevel, walls, players, finishes
移动到函数顶部,如下所示:
def Menu():
global currentlevel, walls, players, finishes
runnin = True
# more code...
以下是一些测试,我希望这些测试可以帮助您了解SyntaxWarning
的内容和内容。
1.不要在全局声明之前声明变量。
a = 3
global a
将提升SyntaxWarning
。
2.即使你在函数之外声明它,你也可以在函数中声明变量global。
a = 3
def asdf():
global a
a = 2
不会提升SyntaxWarning
。
3.在函数中,您可以在全局声明之前声明任何其他变量(但是,不建议)。
a = 3
def asdf():
b = 2
global a
a = 2
不会提升SyntaxWarning
。
4.在函数中,即使括在if else语句中,也只能在赋值之前声明全局变量。
a = 0
def asdf():
if a == 3:
global a
a = 2
return a
else:
global a
return a
将提升SyntaxWarning
。如您所见,这与您正在做的事情更相似。
在给定范围内声明之前声明所有全局变量,即使可能无法访问global
代码。