私はこの質問に正しく言い方をすることさえ知らない(この話題が以前に議論されたか、どのように質問するのか分からない)。
以下のコードは、私に心配するものを返します。 これはデコレータの練習です。これは特に、デコレータが文字列の最初と最後にどのようにHTMLタグを追加できるかを示すために作成されたものです。 私はデコレータ使用して文字列を返す関数を呼び出すことだった場合: @AddTags(「P」、「i」はを、「B」) 戻り値は言っている: 「PIBを *私のブログへようこそジョー!* BIP「デコレータをPython 3で使用していると、困った結果が出る
それはどのようにループためは、すべての値を持つ単一の1行を返すことです。 「が逆転が使用されていないと、結果は後方にありますか? 私はDecoratorsのコンセプトを理解し始めていますが、この例は純粋な魔法のようなものです...これはどのように機能しますか?
def AddTags(*tags):
def decorator(oldFunc):
def inside(*args, **kwargs):
code = oldFunc(*args, **kwargs)
for tag in reversed(tags):
code = "<{0}>{1}</{0}>".format(tag,code)
return code
return inside
return decorator
@AddTags("p","i","b")
def MyWebWelcome(name):
return "Welcome "+name+" To my blog!"
これはデコレータとは関係ありません。リストを繰り返し、文字列を補間し、次の反復で結果を使用するだけです。 –
インデントを修正し、これを実行可能な例にして、その出力を表示して質問を示すことはできますか? – tdelaney