オブジェクトの Python インターピーターはどのようなデータを保存しますか?
たとえば、次のようなコードで:
class MyClass:
pass
if __name__ == "__main__":
c = MyClass()
import sys
print sys.getsizeof(c),sys.getsizeof(MyClass)
出力が 72 と 104 なのはなぜですか? クラスがオブジェクトインスタンスよりも大きいのはなぜですか? クラスとオブジェクトは、72 文字と 104 文字を占める何を格納する必要がありますか?
驚いたことに、これを実行すると:
class MyClass:
def __init__(self):
self.mIntValue = 1024
self.mStringValue = "hust";
if __name__ == "__main__":
c = MyClass()
import sys
print sys.getsizeof(c),sys.getsizeof(MyClass)
出力はまだ 72 と 104 ですが、2 つのプロパティを追加したので、オブジェクトが「大きく」なるはずです。まあ、結果はそうではないようです。