時々「リセット」したいクラスがあります。クラス内のすべての変数とそれが使用するすべてのモジュールを手動でクリアする代わりに、 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)
これにより問題が発生しますか、それとももっと良い方法がありますか?