我有一个类,我想'重置'的时候。与其手动清除类中的所有变量和它使用的所有模块,不如通过调用init来重建它。我担心的是,我不太确定这是否是一个好的模式,或者GC是否正确地清除了旧对象。你知道吗
示例如下:
from modules import SmallClass
from modules import AnotherClass
class BigClass(object):
def __init__(self, server=None):
"""construct the big class"""
self.server = server
self.small_class = SmallClass(self.server)
self.another_class = AnotherClass(small_class)
def reset_class(self):
"""reset the big class"""
self.__init__(self.server)
这会不会引起问题,还是有更好的方法?你知道吗
这样做很安全,除了自动调用
__init__
之外,没有什么神奇之处。你知道吗不过,通常要做的是将公共代码重构到
reset_class
方法中(顺便说一句,类已经在类名中了)。然后从__init__
方法调用reset
。你知道吗我建议换一种方式:
这种模式非常常见,因为它允许
__init__
重置类,您也可以单独重置类。我在Java等其他面向对象语言中也见过这种模式。你知道吗相关问题 更多 >
编程相关推荐