開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc., Emacs(Text Editor)
- プログラミング言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7)のIV部(クラスとオブジェクト指向プログラミング)、まとめ演習2.(リストの機能のオーバーロード)を解いてみる。
その他参考書籍
まとめ演習2.(リストの機能のオーバーロード)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- class MyList(list): def __add__(self, y): # 加算演算子をカスタマイズ return (list.__add__(self, y), [self, y]) if __name__ == '__main__': even = MyList([2, 4, 6, 8, 10]) odd = MyList([1, 3, 5, 7, 9]) ml = MyList([1,2,3,4,5,6,7,8,9,10]) l = [1,2] for x in [("even", even), ("odd", odd), ("ml", ml)]: print("{0} = {1}".format(x[0], x[1])) print("even + odd = {0} {1}".format(even + odd, type(even + odd))) print("odd + even = {0}".format(odd + even)) even.append(5) print(type(even)) print("ml + l = {0}".format(ml + l)) print("l + ml = {0} {1}".format(l + ml, type(l + ml)))
入出力結果(Terminal)
$ ./sample.py even = [2, 4, 6, 8, 10] odd = [1, 3, 5, 7, 9] ml = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even + odd = ([2, 4, 6, 8, 10, 1, 3, 5, 7, 9], [[2, 4, 6, 8, 10], [1, 3, 5, 7, 9]]) <class 'tuple'> odd + even = ([1, 3, 5, 7, 9, 2, 4, 6, 8, 10], [[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]) <class '__main__.MyList'> ml + l = ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2], [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2]]) l + ml = [1, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] <class 'list'> $
0 コメント:
コメントを投稿