Ham*_*teR 5 python memory global-variables
我在pygame中制作了一个简单的游戏,我意识到我需要一堆标记,数量和各种全球员工.所以我决定定义一个类并像这样使用它:
class Staff():
def __init__(self):
self.modes={'menu':True,'spawning':False,'sprite_change':False}
self.timer=pygame.time.Clock()
self.tick_count=0
Run Code Online (Sandbox Code Playgroud)
在我的游戏循环中,我只给我的所有函数一个变量:
def main_loop():
staff=Staff()
while not done:
update_positions(staff)
clear_background(staff)
draw_sprites(staff)
Run Code Online (Sandbox Code Playgroud)
我知道这种方法很有效(对我而言),但是我想知道这会影响我游戏的速度,可能是我在做一些可怕的事情?非常感谢您的回答.
小智 2
请帮自己一个忙,重新考虑您的设计。
首先,您可能认为使用全局变量更容易。您可以传递值,并且可以从每个函数访问它们,而无需使用参数将其传递给它们。但是,当涉及到调试或查找错误或只是在一段时间后查看代码时,全局变量就会变成一场噩梦。因为您很容易忘记这些变量将对其他函数或类产生影响。所以,帮自己一个忙,重新考虑你的设计。
例如,“全局”变量的好地方可能是主类或函数。一切开始的地方。我猜想有一个循环,有些事情会永久重复。从那里您可以将其传递给特定的类或函数。我不知道你的架构,但拥有全局变量根本没有什么用处。