Python では、コンマで区切られたさまざまなデータ型の場合、それらはすべてそれぞれの(またはおそらく) メソッドprint
に従って動作し、素敵なきれいな文字列を出力します。__str__
__repr__
以下のような変数がたくさんありますがdata1, data2...
、それらの合計のおおよそのサイズを知りたいです。そんなこと知ってる:
すべての変数が有用であるとは限りません
sys.getsizeof
(コンテナのサイズではなく、保存されているサイズを知りたいです。) -Martijn Pieters に感謝印刷された各変数の長さは、私の目的には十分なサイズの見積もりです
異なるデータ型を個別に扱うことは避けたいと思います。print
データの全長を取得するような関数を活用する方法はありますか? このようなものが Python にまだ組み込まれていない可能性は非常に低いと思います。
>>> obj.data1 = [1, 2, 3, 4, 5]
>>> obj.data2 = {'a': 1, 'b':2, 'c':3}
>>> obj.data3 = u'have you seen my crossbow?'
>>> obj.data4 = 'trapped on the surface of a sphere'
>>> obj.data5 = 42
>>> obj.data6 = <fake a.b instance at 0x88888>
>>> print obj.data1, obj.data2, obj.data3, obj.data4, obj.data5, obj.data6
[1, 2, 3, 4, 5] {'a': 1, 'c': 3, 'b': 2} have you seen my crossbow? trapped on the surface of a sphere 42 meh
私は次のようなものを探しています:
printlen(obj.data1, obj.data2, obj.data3, obj.data4, obj.data5, obj.data6)
109
あなたのほとんどがこのようなものを書くことができることは知っていますが、私は主にPythonにそれを行う組み込みの方法があるかどうかを尋ねています. 優れた解決策は、Python 2.7return
で出力される文字列への道を示してくれるでしょう。print
(print_r
PHPのようなもので、Pythonよりも完全に劣っていると思います。)事前に入力された変数を持つ多くのオブジェクトを使用してプログラムでこれを行うことを計画しているため、一時ファイルなどへの書き込みはありません。
ありがとう!
補足として、この質問は、未知のデータから構築されているクラスの変数のおおよその合計サイズを計算する必要性から生じました。クラス内の呼び出し不可能なアイテムの合計サイズを取得する方法がある場合 (正直なところ、合計サイズも機能します)、そのソリューションはさらに優れています。Pythonはそのようなことをサポートしていないように見えるので、それを私の主な質問にしませんでした。もしそうなら、万歳!