私はPythonには新しく、言語の機能と機能を理解しようとしています。 次のコードを実行すると、エラーメッセージが表示されます。「wrap()は0の位置引数を受け取りますが、2は与えられた」です。n個の引数を取る関数が0個の引数を含むデコレータ関数のサブ関数に渡されたときにエラーメッセージがスローされる
class dec:
def decorator_function(orig):
def wrap():
print('hi')
return orig
return wrap
@decorator_function
def display_inf(name, age):
print('dispInf ran with args ({},{})'.format(name,age))
display_inf('John',35)
私はエラーmsgの内容を理解しており、以下のように2つのパラメータを含むようにwrap関数を変更すると、このmsgは取得できません。しかし、私が頭を悩ますことがないのは、なぜpythonがエラーを投げているのかということです。 display_inf関数は、期待どおりにdecorator_functionに渡されますが、折り返し機能に関しては、のように表示されます。関数を使用していないので、なぜ私はそれを使用していない場合、私はまだこのエラーを取得しています。エラーの原因となるシーンの後ろには何が起こりますか。
def decorator_function(orig):
def wrap(name, age):
print('hi')
return orig
return wrap
詳細な説明はありません。今それはすべて理にかなっています:-) – Sharingan