Функция, которая делает что-то и вызывает встроенную функцию, которая удаляет это - PullRequest
0 голосов
/ 17 октября 2019

Я создаю диспетчер задач и хочу использовать complete-func, который собирается что-то сделать с созданным экземпляром, а затем вызвать del и удалить объект экземпляра класса. Является ли это возможным? Я очень стараюсь найти решение.

Пытался использовать функцию из класса и пытался найти статьи на эту тему, но безуспешно.

from datetime import date

class reg_task:
    def __init__(self, what_to_do, date=date.today(), hour=None, tag=None, project="day to day task", priority=None, remind_time=None):
        self.what_to_do = what_to_do
        self.date = date
        self.hour = hour
        self.tag = tag
        self.project = project
        self.priority = priority
        self.remind_time = remind_time

    def __str__(self):
        return f'task {self.what_to_do}, to-do-date - {self.date}'

    def tasks_complete(self):
        with open(r"C:\Users\Avi Fenesh\Desktop\python\tasks_project\archive\archive", "a") as archive:
            archive.write(f"{str(self)} \n")
        del self

Проблема в том,с tasks_complete(). Когда я вызываю функцию, она не удаляет созданный объект класса.

1 Ответ

1 голос
/ 17 октября 2019

Это потому, что объекты нельзя собирать, пока кто-то хранит ссылку на них. Просто делать del self недостаточно.

См .: del self vs self .__ del __ () - и какой правильный способ очистки в python?

...