OOP python-从列表中删除类实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OOP python-从列表中删除类实例相关的知识,希望对你有一定的参考价值。

我有一个列表,其中保存了由特定类创建的对象。

我想知道,因为我无法设法解决此问题,如何从列表中删除该类的实例?

这应该基于了解对象的一个​​属性而发生。

答案

遍历列表,找到对象及其位置,然后将其删除:

for i, o in enumerate(obj_list):
    if o.attr == known_value:
        del obj_list[i]
        break
另一答案

您可以使用列表理解:

thelist = [item for item in thelist if item.attribute != somevalue]

这将用item.attribute == somevalue删除all个项目。

如果您只想删除一个这样的项目,请使用WolframH's solution

另一答案

您可以将它们存储在字典中,并按名称将其删除

di = "test" : my_instance()
del di['test']
另一答案

我不确定这是否是最好的方法。

但是我听说某个地方的对象是由id划分的。

所以为什么不检查其ID是否相同?

for i in list:
     if id(my_object) == id(i):
          list.remove(i)

以上是关于OOP python-从列表中删除类实例的主要内容,如果未能解决你的问题,请参考以下文章

5_Python OOP

python中的oop面向对象基本编程(类实例魔术)

Python3 OOP 类和实例

Python OOP-5

oop思维意识,类 模块命名空间,类扩展之继承 组合mixin三种模式

将所有信息放入列表而不是 OOP 中的类继承是不好的做法吗?