@RUSTIK1023

Как настроить del в python?

есть следующий класс:
class MyClass():
    def __init__(self, *args):
        self.args=args

example=MyClass('ab','12',100,None)

Теперь я хочу добавить строчку, которая сможет удалить элемент args'а. Она выглядит так:
del example['ab']
Но, очевидно, что она не сработает. Нужно настроить MyClass так, чтобы эта строчка работала. И я знаю, что можно сделать иначе и проще, но мне нужен именно такой вид удаления. Что мне дописать в MyClass, чтобы это работало?
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
Ну класс чуть переделать желательно бы. У тебя аргументы хранятся как кортеж (не мутабельный объект). Сменить для начала на список (мутабельный тип), и затем определить подходящий дандер метод. Например как то так.
class MyClass():
    def __init__(self, *args):
        self.args = list(args)  

    def __delitem__(self, key):
        if key in self.args:
            self.args.remove(key)

example = MyClass('ab', '12', 100, None)
print(example.args)
del example['12']
print(example.args)

Ну и там покрыть исключением если ключа нет и т.д.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы