def make_bold(fn):
return lambda : "<b>" + fn() + "</b>"
def make_italic(fn):
return lambda : "<i>" + fn() + "</i>"
@make_bold
@make_italic
def hello():
return "hello world"
helloHTML = hello()
出力: "<b><i>hello world</i></b>"
私はデコレーターについて大まかに理解し、ほとんどの例でそれがどのように機能するかを理解しています。
この例では、2つあります。出力から、@make_italic
最初に実行され、次にが実行されるようです@make_bold
。
これは、装飾された関数の場合、最初に関数を実行してから、他のデコレーターの上部に移動することを意味しますか?同様に@make_italic
まず@make_bold
、代わりに反対の。
これは、ほとんどのプログラミング言語でのトップダウンアプローチの標準とは異なることを意味しますか?このデコレータの場合だけですか?それとも私は間違っていますか?