我的游戏在很大程度上依赖于globals,但也给了我syntaxwarning,即使没有它们,游戏也无法运行

2024-04-26 14:06:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我怎样才能使它不完全依赖全局变量呢?当我运行游戏时,它会给我一个语法警告,但是如果没有globals,我的游戏就不能工作。你知道吗

http://pastebin.com/pnzutun6


Tags: comhttp游戏警告语法pastebin全局变量globals
2条回答

只是浏览一下你的代码,我注意到你似乎并没有真正利用面向对象编程。将其中一些函数转换为类,并让您创建的对象保存当前的全局变量,这些变量会不断给您带来问题。你知道吗

你可以,就像奥克斯洛克说的,利用OOP。更简单的选择(虽然可能不是最好的风格)是将统计信息作为参数传递给每个函数。最好的方法是通过字典:

stats = {'ponyattack': 0, 'health': 100, 'armor': 1, 'strength': 1, 'potion': 0, 'attack': 10, 'stamina': "N/A", 'shield': "lol, what shield?", 'hint': 3}

定义所有函数以接受stats作为参数。如果一个函数只需要一个或两个统计信息,则分别传递它们。。。它有助于更好的风格。你知道吗

无论何时您想要访问一个特定的stat,您都可以调用stats['ponyattack']stats['health']或其他任何东西。也可以用相同的方法修改和添加统计信息:

stats['health'] = stats['health'] + 1
stats['armor'] = 10

Here是关于字典的更多信息。你知道吗

相关问题 更多 >