3

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

これにより問題が発生しますか、それとももっと良い方法がありますか?

4

2 に答える 2