0
デコレータについて学んでいます。この便利なスレッドが本当に助けになりました。 How to make a chain of function decorators?デコレータを実装コードに変換する
私が理解したことに基づいて、デコレータは単なる構文的な砂糖です。しかし、私は構文的な砂糖コードから非統語的な砂糖コードに変換するのに問題があります。
# Decorators
def addBold(func):
def wrapper(*arg1):
print("Bold Added")
return '<b>' + func(*arg1) + '</b>'
return wrapper
def addItalic(func):
def wrapper(*arg1):
print("Italic Added")
return '<i>' + func(*arg1) + '</i>'
return wrapper
このコードは動作します:
@addBold
def getHTMLCode(passedText):
return passedText
newVar = getHTMLCode('Hello')
print(newVar)
# outputs: Bold Added <b>Hello</b>
(TypeError: 'str' object is not callable
)私は非シンタックスシュガーコードに変換しようとしたが、これは動作しません:
def getHTMLCode(passedText):
return passedText
newVar = addBold(getHTMLCode('Hello')) # returns wrapper
newVar()
作業コードを何(第2ブロック)は、デコレータ構文砂糖なしのように見える?