Pythonでのクラス属性の有効期間は? クラスのインスタンスが現在ライブでない場合、クラスとそのクラス属性がガベージ コレクションされ、クラスが次に使用されるときに新しく作成される可能性がありますか?
たとえば、次のようなものを検討してください。
class C(object):
l = []
def append(self, x):
l.append(x)
のインスタンスを作成し、 にC
5 を追加するC.l
と、 のインスタンスはC
参照されなくなり、ガベージ コレクトできるようになります。後で、 の別のインスタンスを作成しC
、 の値を読み取りますC.l
。私C.l
は保持することが保証されてい[5]
ますか?または、クラス自体とそのクラス属性がガベージ コレクションされ、C.l = []
後でもう一度実行される可能性はありますか?
または、別の言い方をすれば、クラス属性の存続期間は「永遠」ですか? クラス属性の有効期間はグローバル変数と同じですか?