我有一个名为 Mobilesuits 的类,该类的每个实例都有一个名为坐标的属性,该属性由其网格坐标组成,位于列表 (x,y,z) 中。
我正在尝试制作一种雷达方法来检测给定车辆与其他车辆的距离,但找不到同时引用每个物体坐标的方法。有没有一种简单的方法可以在 Python 中执行此操作?我不想维护所有车辆的列表,每次我想执行全局更改时都使用 for 循环遍历整个列表,但这是我能想到的唯一方法。
请您参考如下方法:
在类级列表中保存对每个实例的引用。 IMO 它并不难维护,也不是全局列表。
class Mobilesuits:
instances = []
def __init__(self):
Mobilesuits.instances.append(self)
显然,将您需要的任何其他内容添加到 __init__。如果您从类外部查看 Mobilesuits.instances,您将获得它的实例列表。
如果您真的真的不想保留一个列表,您可以使用 gc 做一些非常有问题的事情(老实说,我知道有多安全):
import gc
mobile_suits = [o for o in gc.get_objects() if isinstance(o, Mobilesuits)]
但说真的,只保留一个列表
