Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 22, 2021 21:56:20

Euseph
Зарегистрирован: 2021-08-22
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как удалить элемент списка (мсье знает толк в извращениях

 my_list = list()
class My_class:
  def __init__(self):
    # здесь код
    my_list.append(self)
  def __del__(self):
    # собственно вопрос

Как переопределить деструктор таким образом, чтобы он удалял этот экземпляр класса из my_list?
Спасибо.

Офлайн

#2 Авг. 23, 2021 00:22:49

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2751
Репутация: +  184  -
Профиль   Отправить e-mail  

Как удалить элемент списка (мсье знает толк в извращениях

Зачем мсье списки?

 class My_class:
    my_instans = {}
    def __init___(self):
        self.my_instans[id(self)] = self
    def __del__(self):
        del self.my_instans[id(self)]
Если мсье будит писать вот такие глупости my_list = list(), то ему будит выделен персональный котёл в аду.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Онлайн

#3 Авг. 23, 2021 07:39:14

Euseph
Зарегистрирован: 2021-08-22
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как удалить элемент списка (мсье знает толк в извращениях

Rodegast
Если мсье будит писать вот такие глупости my_list = list(), то ему будит выделен персональный котёл в аду.
Спасибо.
Я в принципе хотел бы пожить отдельно от тёщи хотя бы в аду, но похоже вы считаете, что my_list = list() - это что-то плохое, почему? Такой метод предлагает Луц, он мне нравится тем, что ++подобный. Гугл на сей вопрос не отвечает.

Офлайн

#4 Авг. 23, 2021 08:33:02

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Как удалить элемент списка (мсье знает толк в извращениях

Euseph
нравится тем, что ++подобный
Плюсоподоный это:
 Sometype a{123};
int b[5];

Питоноподобный
 a = Sometype(123)
b = []

Те в современном C++ инициализация идет с использованием фигурных скобок. С вашей записью ничего общего.
Если есть короткий способ зачем использовать длинный. А в плюсах для встроенных типов вообще невозможно указать конструктор. Т.е. тоже ни малейшей аналогии не вижу.

 >>> li =[1,2,"aaa",4,5]
>>> li.remove("aaa")
>>> li
[1, 2, 4, 5]

Изучайте документацию и… передавайте привет теще )))



Отредактировано doza_and (Авг. 23, 2021 08:36:10)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version