class example:

    def exampleMethod(self):
        aVar = 'some string'
        return aVar

在这个例子中,在每次调用 example.exampleMethod() 之后垃圾收集如何工作?一旦方法返回,aVar 会被释放吗?

最佳答案

变量永远不会被释放。

对象(在这种情况下是一个字符串,值为 'some string' 一次又一次地重复使用,因此该对象永远不会被释放。

当没有变量引用对象时,对象被释放。想想这个。

a = 'hi mom'
a = 'next value'

在这种情况下,当执行第二个语句时,脚本中的任何地方都不再引用第一个对象(值为 'hi mom' 的字符串)。对象 ( 'hi mom' ) 可以从内存中删除。

关于python - Python 中的垃圾收集如何与类方法一起工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/843459/

10-11 18:29