こんにちは、
アドバイスありがとうございます。
素晴らしいっす。lambdaのデフォルト値の機能をうまく使えば
いいんですね。(TkinterでButtonに関数を割り当てる時も
このパラメータのデフォルト値の機能を利用するとアドバイス
していた本を読んだことがあります。)
|
| 石本です。
|
| On Thu, 16 May 2002 00:47:11 +0900
| Atsuo Ishimoto <ishimoto@...> wrote:
|
| > この場合のfunc0, func1はこんなのでどうでしょ?
| >
| > class Func:
| > def __init__(self, f=None):
| > self.f = f
| >
| > def __mul__(self, r):
| > return Func(lambda x, r=r: self(r(x)))
ここは
| > return Func(lambda x, self=self, r=r: self(r(x)))
と修正させていただいて動作確認いたしました。
期待していた結果となりました。
| >
| > def __call__(self, x):
| > return self.f(x)
| >
|
|
| こう書いたほうが判り易いかな?
好みとしては上です。
|
| class Func:
| def __mul__(self, r):
| return Composit(lambda x, r=r: self(r(x)))
|
| class Composit(Func):
| def __init__(self, f=None):
| self.f = f
|
| def __call__(self, x):
| return self.f(x)
|
<後略>
でわでわ
-- ぬ