动态创建的类是否像其他对象一样被销毁?

2024-04-25 21:40:59 发布

您现在位置:Python中文网/ 问答频道 /正文

作为序言,这是一个假设,只是一个问题,突然出现在我的脑海中,而我是原型一些代码。动态创建类的适用范围很窄。你知道吗

在Python中,我可以动态地定义一个类,例如,将其定义嵌套在def[1]中:

def NewClass(doc):
  class MyClass(object):
    __doc__ = doc
  return MyClass

当类的实例变得不可用时会发生什么?它的refcount是否变为零,是否像其他对象一样被销毁?或者是因为它是一个类而被特别处理了一点?在阅读语言文档时,我没有看到太多关于类对象破坏的内容。你知道吗

更具体地说,如果我让代码响应用户请求来创建这些类,例如,在一个进程的生命周期中有成千上万个或数百万个被创建的类,那么我是否需要担心由于所有创建的类而耗尽内存?你知道吗

[1]例如type“函数”,可能还有各种元类事物或__new__技巧。你知道吗


Tags: 对象代码docreturn定义objectdefmyclass
1条回答
网友
1楼 · 发布于 2024-04-25 21:40:59

是的,类也是对象,并且受相同的引用计数规则控制。你知道吗

如果对返回值所做的只是创建实例,那么对类的唯一引用就是这些实例上的__class__属性。如果没有该特定类的更多实例,它将不再被引用和删除。你知道吗

相关问题 更多 >