Введите имя класса и удалите объект этого класса из списка - PullRequest
0 голосов
/ 03 июля 2018

Я хочу удалить объект из списка, используя переменную 'classname'

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

1 Ответ

0 голосов
/ 03 июля 2018

Некоторые объекты знают свои имена. Если A и B являются классами, функциями, методами, дескрипторами или экземплярами генератора, вы можете использовать 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'>]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...