メソッドチェインツール改
「割と汎用のメソッドチェインツール」 の改良版です。 今までは関数のみしか扱えなかったのですが、 対象オブジェクトのメソッドを扱えるようにしました。 パターンは、メソッドの返値を扱うタイプと、 メソッドの副作用で変化したオブジェクト自体を扱うタイプの2種類です。
こんな感じで使います。
>>> import methodchain
# 例でmathモジュールを使うためです。
>>> import math
# メソッドチェインの例。pipeとfuncは同じです。
>>> pack(3).pipe(math.pow, 6).func(math.sqrt).unpack()
27.0
# パックしたオブジェクト('spam')のメソッド(upper)を呼び出す例。
>>> pack('spam').method('upper').unpack()
'SPAM'
# パックしたオブジェクト自体に副作用をかけていく例。
>>> pack(list('spam')).obj('sort').obj('reverse')
['s', 'p', 'm', 'a']
# パックした中身の属性も使えます。
>>> pack('spam').upper()
'SPAM'
# 中身の属性を利用した型変換の例。
>>> int(pack(9))
9