たとえば、関数がありますalert()
。誰かが を呼び出した場合にも機能するようにしたいのですがalert_user()
、どちらも同じ機能を持っています。私はそれが次のようなものだと想像します:
@synonym alert_user
def alert():
print('hi!')
そして、それは次のように機能します:
>>> alert()
hi!
>>> alert_user()
hi!
そのようなことはありますか?
デコレータ (あなたの例のように) は、囲んでいる名前空間にアクセスできないため、装飾するものの新しい名前を作成できません。ただし、関数のエイリアスを追加するのは簡単です。
def alert():
print('hi!')
alert_user = alert
これはあなたが望むものを与えるでしょう
def alert():
print('hi!')
alert_user = alert
>>> alert()
hi!
>>> alert_user()
hi!
関数は、Python の最初のレベルの市民です。追加するだけalert_user = alert
です。
仲間のヘルパーが上で述べたように、アラートを関数として定義し、アラートに変数表現を与えることができます。
alert_user = alert
ありがとうベン