Skip to main content
 首页 » 编程设计

python之如何同时引用所有类实例

2025年05月04日11over140

我有一个名为 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)] 

但说真的,只保留一个列表