Как полностью уничтожить / удалить класс из системы, чтобы любой выполняемый им цикл был остановлен - PullRequest
0 голосов
/ 06 апреля 2019

Эй, ребята, у меня проблема с удалением экземпляров классов.У меня есть класс, который всякий раз, когда создается экземпляр, он запускает цикл while.Но когда я пытаюсь удалить этот экземпляр, цикл все равно выполняется независимо от того, что.Как я могу удалить его правильно, чтобы не осталось никаких признаков этого экземпляра?не могли бы вы мне помочь?

Я уже пытался создать инстейст, затем добавить его в список, затем удалить его из этого списка, но он не работал.

class Foo:
  delf __init__(self):
    self.x = 0
    while True:
      self.x += 1
  def die(self):
    instances.remove(self)

instances = []
foo = Foo()
instances.append(foo)
foo.die()

1 Ответ

1 голос
/ 06 апреля 2019

Не уверен, почему в конструкторе есть цикл while True, конструктор никогда не завершится и instances.append(foo) будет недоступен. Предполагая, что вы положили while True по ошибке, вы можете использовать del https://docs.python.org/3/tutorial/datastructures.html#the-del-statement


class Foo:
  def __init__(self):
    self.x = 0

foo = Foo()
print(foo.x)
#0
del foo #this deletes the object
print(foo)
#NameError: name 'foo' is not defined
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...