Python ― 漬物 

Python(2.5)のシェル IDLE で遊んでみた。

Pythonにはオブジェクトのインスタンスを、漬物文字列に変換したり、ファイルに保存するために、pickleというモジュールがある。JavaやC#にも似たような機能があるのだが、手軽さでPythonのpickleには及ばない。

まずは、「import pickle」でpickleモジュールをインポートする。すると、「pickle.dumps(X)」でXを漬物にできる。

  • pickle.dumps(1) → 'I1\n.' #整数1の漬物
  • pickle.dumps('1') → "S'1'\np0\n." #文字「1」の漬物
  • a = [1,2,3]
    pickle.dumps(a) → '(lp0\nI1\naI2\naI3\na.' #リストaの漬物
  • class unko:
        def __init__(self,jotai):
            self.jotai = jotai
    a = unko('dorodoro')
    pickle.dumps(a) → "(i__main__\nunko\np0\n(dp1\nS'jotai'\np2\nS'dorodoro'\np3\nsb." #jotaiが'dorodoro'であるunkoの漬物)
    pickle.dumps(unko) → 'c__main__\nunko\np0\n.' #あれぇ? unkoの漬物であるはずだが、unkoにjotaiプロパティがあることなどなどは含まれていない。単に名前だけ。
  • pickle.dumps(pickle.dumps) → 'cpickle\ndumps\np0\n.' #pickle.dumpsそのものの漬物のはずだが、これも名前だけ。

クラスのインスタンスは漬物にできるが、クラスそのものは本物の漬物にはできない。モジュールに含まれるメソッドも無理。


[2007/12/18 12:31] Python | TB(0) | CM(0)