首页 > 解决方案 > 输入类名并从列表中删除该类的对象

问题描述

我想使用变量“类名”从列表中删除一个对象

list = [A, A, B]                    #objects inside a list  
classname = input() .               #x = A
list.remove(classname)              #the problem is that classname is a string
                                    #and the list has no strings

标签: python-3.xlistclass

解决方案


一些对象知道它们的名字。如果AandB是类、函数、方法、描述符或生成器实例,您可以使用definition.__name__它们来确定它们的名称。

class A:
    pass

class B:
    pass

l = [A, B, A, B]
remove = "A"
print([x for x in l if x.__name__ != remove])
# [<class '__main__.B'>, <class '__main__.B'>]

推荐阅读