編輯: 作爲一個練習,我需要在第二個時刻定義一個函數結果的字符串。我雖然關於使用裝飾器,我顯然是錯的;有關如何做的建議?在函數結果前加一個字符串
OLD:
def my_decorator(func):
def wrapped(*args, **kwargs):
return "hello {0}".format(func(*args, **kwargs))
return wrapped
@my_decorator
def myfunc():
return "boy"
def myfunc():
return "girl"
if __name__ == "__main__":
print(myfunc())
這段代碼將打印 「丫頭」,我想它打印 「你好的女孩」。 有什麼辦法可以做到嗎?
你爲什麼要重寫的第一個定義?你的問題的解決方案可能會沿着不這樣做的路線。裝飾者不會像你試圖讓他們工作一樣。 – user2357112
你不能。您可以隨時替換對象,並且您在此處這樣做。您必須在替換名稱時或在調用對象時重新應用裝飾器。 –
我正在做這個練習。我需要在第二個時刻定義一個函數結果的字符串。我雖然關於使用裝飾器,我顯然是錯的;我編輯了問題 – z3d0