| 作者: 機械伯爵 | |
| 日時: 2002/4/3(21:20) |
# selfward.py
# Pythonオブジェクトの特性で遊ぶスクリプトです
# Pythonコンソール上で以下のコマンドをうちこんでみて
# ください。
#
# >>> from selfward.py import SelfService
# >>> a = SelfService()
# >>> a()()()()()
#
# さぁ、どういう結果になるでしょう?
# ※Pythonのメソッドフックの理解に役立つと思います。
# ※ちなみに、selfを返すアイディアは、SmalltalkやC++の本には
# 載ってましたが、Pythonではあまり見かけませんね。
class SelfService:
x = 0
def __call__(self): # 関数的な呼び出し
print self.x # を定義するメソッドフック
self.x = self.x + 1 # ←旧式の書き方。+=でも可
return self
def __repr__(self): # コンソール上での文字列表現
return "" # を定義するメソッドフック
番号順一覧Top
スレッド順一覧Top
77. P は Python の P[5] [機械伯爵] 2002/4/3(14:10)
79. 大蛇の解剖 [1] [機械伯爵] 2002/4/4(16:53)