如果在函数中创建了对象,那么在函数调用完成后是否会删除对象?

时间:2019-03-08 15:47:05

标签: python class python-object

我目前正在使用save()方法构建类模型,以将其插入/更新到这样的数据库中:

class Session(object):

    #
    # ...
    #

    def save(self):
        try:
            database = Database()
            if self.id == None:
                self.id = database.insert(
                    '<table>',
                    [<list of columns>],
                    [<list of values>]
                )
                if self.id == False:
                    raise RuntimeError('Database insert failed for Session class.')
            else:
                if not database.update(
                    '<table>',
                    [<list of columns>],
                    [<list of values>],
                    [<list of columns>],
                    [<list of values>]
                ):
                    raise RuntimeError('Database update failed for Session class.')
        except (RuntimeError):
            print(RuntimeError)
        database.disconnect()
        return True

我正在Database()类的save方法内创建数据库对象Session。但是,我想知道__del__类方法完成后是否自动调用对象Session。如果是这样,我宁愿让database.disconnect()在数据库对象__del__方法内部运行,而不是在当前的Session类方法中运行。

我不太确定Python如何处理函数中的对象,如果我对许多对象进行处理而没有正确删除旧对象,会出现内存问题吗?

我的问题与以下可能重复的建议有所不同,因为我要要求对在另一个对象中完成的对象调用什么方法的组合,同时还要询问它们是否在作用域末尾被垃圾回收。

0 个答案:

没有答案