開発環境
- 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部(クラスとオブジェクト指向プログラミング)、26章(クラスに関する高度なテクニック)の練習問題1を解いてみる。
その他参考書籍
1.
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- # ビルトイン型のオブジェクトの機能を拡張 # int型の加算演算子を2つの方法でカスタマイズ # クラスを継承 class MyInt1(int): def __add__(self, y): print("{0}に{1}を加算".format(self, y)) return int.__add__(self, y) # デリゲーションを利用 class MyInt2: def __add__(self, y): print("{0}に{1}を加算".format(self, y)) return MyInt2(self + y) def __getattr__(self, attrname): return getattr(int, attrname) # intの他のメソッドは省略 print("サブクラスを作成") a = MyInt1(10) print(a) b = a + 100 print(b) c = MyInt1(1000) d = a + c print(d) print("{0} * 5 = {1}".format(a, a * 5)) print("デリゲーションの利用") a = MyInt1(10) print(a) b = a + 100 print(b) c = MyInt1(1000) d = a + c print(d) print("{0} * 5 = {1}".format(a, a * 5))
入出力結果(Terminal)
$ ./sample.py サブクラスを作成 10 10に100を加算 110 10に1000を加算 1010 10 * 5 = 50 デリゲーションの利用 10 10に100を加算 110 10に1000を加算 1010 10 * 5 = 50 $
0 コメント:
コメントを投稿