相关疑难解决方法(0)

新旧样式类中的Python析构函数

我试图理解为什么对象破坏在新风格类中与旧风格类相比有不同的作用.

class Wrapper():
    class Inner(object):
        def __del__(self):
            print 'Inner destructor'

    innerInstance = Inner()

    def __del__(self):
        print 'Wrapper destructor'

if __name__ == '__main__':
    x = Wrapper()
Run Code Online (Sandbox Code Playgroud)

在退出时,这将输出:

Wrapper destructor
Inner destructor
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用Wrapper作为新的样式类,则只调用包装器析构函数,输出为:

Wrapper destructor
Run Code Online (Sandbox Code Playgroud)

有人可以解释上面显示的行为吗?

python destructor

5
推荐指数
1
解决办法
530
查看次数

标签 统计

destructor ×1

python ×1