python - 在函数中创建类对象并保留它们

标签 python pygame

我正在使用 Pygame 用 Python 构建一个游戏。我创建了一个充当按钮的类。单击时,它会在各种状态之间循环(稍后会执行更多操作。)

我需要的是它们的网格,我可以动态调整其大小。我有一个函数可以迭代并分配类对象坐标并使网格(图像生成但最终是静态的),但我不确定它是否正确创建了对象。即使确实如此,当函数结束时它们也会从内存中删除,因为它们是本地的。

我看过很多东西,人们说使用字典来存储动态创建的对象,但我需要类对象仍然能够使用它们的函数。有没有办法迭代一组具有动态名称的类对象并保留它们?我可以手动创建一个巨大的网格,但我真的不想显式创建并分配 100 个或更多坐标给对象。

最佳答案

字典(或列表,或其他什么)就是答案。我不明白为什么您会认为将实例存储在容器中意味着您无法访问它们的方法。您可以,就像以前一样。

例如,如果您的类有一个方法“my_method”,您可以在从字典中检索到的该类的对象上调用它:

my_dict['my_instance'].my_method() 

关于python - 在函数中创建类对象并保留它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32457224/

相关文章:

python - 将 MySQLdb 与 PyDev 集成

Python & Sqlite3 - 子集一个表然后加入另外两个表

pygame - 使用 psychopy 时如何在不更改窗口类型的情况下克服 "RuntimeError: Gamma ramp size is reported as 0."?

python - 不显示删除的 Sprite ,Pygame

python - Sprite 正在碰撞,但球不会向相反方向弹跳

python - python内部函数定义中的变量是什么?

python - 为什么 json.loads 关心使用哪种类型的引号?

python - Pygame:绘制矩形的奇怪行为

python - 请您解释一下这段代码,特别是第 8 行;里面有循环的那个?

python - 为什么我在 PyGame 中得到空白的灰色背景而不是动画?