Python 3.x 在窗口中使用多个按钮时减少Pygame代码 elif 192

Python 3.x 在窗口中使用多个按钮时减少Pygame代码 elif 192,python-3.x,pygame,python-3.7,Python 3.x,Pygame,Python 3.7,所以我使用pygame,我有很多很多按钮,我如何减少这个代码,因为它非常重复,但我不确定如何减少它。所有的“Elif”看起来都像这样,但我基本上需要一个开关。 -谢谢您可以将4行压缩为1: elif 192 < mouseY < 224: draw = "default" if iconSelected == "watertower": iconSelected = None else: iconSelected = "wate

所以我使用pygame,我有很多很多按钮,我如何减少这个代码,因为它非常重复,但我不确定如何减少它。所有的“Elif”看起来都像这样,但我基本上需要一个开关。
-谢谢

您可以将4行压缩为1:

elif 192 < mouseY < 224:
    draw = "default"
    if iconSelected == "watertower":
        iconSelected = None
    else:
        iconSelected = "watertower"
或者,根据上下文,另一种方式可能更清楚:

iconSelected = "watertower" if iconSelected != "watertower" else None

它被设置为None,变量,这基本上意味着什么都没有被选择。你能再显示一些你的代码并解释一下吗?我确信为按钮添加一个抽象将减少代码重复并提高可读性。@Skezza如果您想查看代码,请发布完整的程序。您不需要在那里创建另一个帐户。确保您的程序可运行且工作正常。如果我选择了,是否会选择iconSelected=“watertower”=“水塔”是否被我选中=不起作用?@Skezza不,不会。我展示的方式更短,更有效。
iconSelected = None if iconSelected == "watertower" else "watertower"