例如,我有一個功能,比如說alert()
。如果有人撥打alert_user()
,我希望該功能也可以工作,兩者具有相同的功能。我想象它是這樣的:如何讓一個函數被兩個名字調用?
@synonym alert_user
def alert():
print('hi!')
而且它的工作是這樣的:
>>> alert()
hi!
>>> alert_user()
hi!
是否有這樣的事情嗎?
例如,我有一個功能,比如說alert()
。如果有人撥打alert_user()
,我希望該功能也可以工作,兩者具有相同的功能。我想象它是這樣的:如何讓一個函數被兩個名字調用?
@synonym alert_user
def alert():
print('hi!')
而且它的工作是這樣的:
>>> alert()
hi!
>>> alert_user()
hi!
是否有這樣的事情嗎?
裝飾器(如你的例子)不能訪問封閉的命名空間,所以它不能爲它裝飾的東西創建一個新的名字。然而,可以很容易地添加一個別名爲你的函數:
def alert():
print('hi!')
alert_user = alert
'raw_input = input'將在Python 3中使'raw_input()'可用。 –
如果出於某種原因需要這樣做,這將是執行此操作的最佳方式 – jamylak
這會給你想要的東西
def alert():
print('hi!')
alert_user = alert
>>> alert()
hi!
>>> alert_user()
hi!
功能是在Python的第一級公民。 只需添加alert_user = alert
即可。
正如上面的同伴幫助者所述,您可以將alert定義爲一個函數,然後給出一個變量表示的提示。
alert_user = alert
感謝 本
我認爲這違背了Python的哲學「應該有one--和最好只有一個--obvious辦法做到這一點。」 –
@WaleedKhan:確實如此,但這樣做可能有合理的理由(值得注意的是,如果您對API進行了更改,但需要保留舊名稱以便在過渡期間向後兼容,然後才能刪除舊名稱)。 – BrenBarn
這樣定義'alert_user':'def alert_user():alert()'。 –