回答
我認爲這是說裝飾函數在應用裝飾器之前從未真正分配給名稱空間中的任何內容。當你用裝飾器寫一個函數時,你寫的函數作爲參數傳遞給裝飾器,然後裝飾器返回的對象被視爲函數。這裏有一個簡單的例子:
def dec(func):
print('times_two' in globals())
def _inner(*args, **kwargs):
print("Decorated")
return func(*args, **kwargs)
return _inner
@dec
def times_two(x):
return x*2
print('times_two' in globals())
你可以看到這個運行here。 print
的dec
表示False
,因爲名稱「times_two」在裝飾器完成「裝飾」功能之前未綁定到任何東西。
「一個函數定義可以被一個或多個裝飾器表達式包裝,裝飾器表達式在函數定義時被計算,在包含函數定義的範圍中,結果必須是可調用的,調用函數對象作爲只有參數,返回值綁定到函數名而不是函數對象,多個裝飾器以嵌套的方式應用,例如下面的代碼「這兩個語句是否相同? –
@HongliBu哪兩句話? –
我的問題和評論中的陳述 –
- 1. python中的綁定函數和裝飾器
- 2. 在Python中裝飾裝飾器
- 3. Python裝飾器和繼承
- 4. python:簡單的裝飾器函數的類名稱空間
- 5. python中的裝飾器
- 6. 臨時名稱
- 7. Python裝飾3.0和裝飾的參數
- 8. Python裝飾器和裝飾器模式有什麼區別?
- 9. 用於自動綁定的Python裝飾器__init__參數
- 10. Python memoization裝飾器
- 11. python裝飾器是如何定義的?
- 12. 在Visual Studio中瀏覽'裝飾名稱'
- 13. Python中的生成器裝飾器
- 14. 好的Python裝飾器
- 15. 裝飾器綁定方法訪問類和他的祖先
- 16. ViewModel屬性上的裝飾使用不同的名稱進行綁定
- 17. 名稱綁定和語言綁定
- 18. 如何裝飾Ninject中的命名綁定
- 19. 裝飾裝飾器
- 20. 獲取裝飾函數的名稱?
- 21. Python裝飾器和類繼承
- 22. Python的 - 裝飾
- 23. Python函數和裝飾器中的括號(包裝)
- 24. Python:獲取裝飾函數真實名稱的程序
- 25. Python 2.5中的類裝飾器?
- 26. Python中的裝飾器鏈2.7
- 27. Python:爲特定功能創建臨時名稱
- 28. Python類裝飾器參數
- 29. Python裝飾器範圍
- 30. 錯誤LNK2019 - 名稱裝飾 - 缺少__imp_
我們將需要查看上下文。 – user2357112