没有变量赋值的Python类实例

Pra*_*rag 5 python memory class

如果我创建一个类的实例而不将其分配给变量,那么每次运行代码时它都会占用内存吗?或者在执行包含实例的代码行后内存是否会释放?

例如:

class TestClass():
    def __init__(self):
        self.Moto = "Moto"
    def printIt(self):
        print self.Moto
Run Code Online (Sandbox Code Playgroud)

所以如果我像这样使用它:

TestClass().printIt()
Run Code Online (Sandbox Code Playgroud)

每次执行该行都会占用越来越多的内存吗?

NPE*_*NPE 5

不,该实例将被自动垃圾收集。确切的机制取决于Python 的实现。CPython 使用引用计数,并将在TestClass().printIt().

但是,如果您要保留对新构造的对象的一个​​或多个引用,则只要引用该对象,该对象就会保持活动状态。