回答
我認爲這是說裝飾函數在應用裝飾器之前從未真正分配給名稱空間中的任何內容。當你用裝飾器寫一個函數時,你寫的函數作爲參數傳遞給裝飾器,然後裝飾器返回的對象被視爲函數。這裏有一個簡單的例子:
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. Python裝飾器
- 7. Python中的可定製裝飾器
- 8. python:簡單的裝飾器函數的類名稱空間
- 9. python中的裝飾器
- 10. 臨時名稱
- 11. Python裝飾3.0和裝飾的參數
- 12. 指的是修飾器內裝飾函數的名稱
- 13. 查找名稱裝飾
- 14. Python裝飾器和裝飾器模式有什麼區別?
- 15. 修改綁定方法及其類的Python裝飾器狀態
- 16. 用於自動綁定的Python裝飾器__init__參數
- 17. Python中的裝飾器必須實現裝飾器模式嗎?
- 18. Python memoization裝飾器
- 19. python裝飾器是如何定義的?
- 20. 在Visual Studio中瀏覽'裝飾名稱'
- 21. Python中的生成器裝飾器
- 22. 嵌套的python裝飾器?
- 23. NumbaPro(Python)裝飾器的NotImplementedError
- 24. 好的Python裝飾器
- 25. JavaScript的Python裝飾器
- 26. 裝飾器綁定方法訪問類和他的祖先
- 27. 如何裝飾Ninject中的命名綁定
- 28. ViewModel屬性上的裝飾使用不同的名稱進行綁定
- 29. 名稱綁定和語言綁定
- 30. 裝飾裝飾器
我們將需要查看上下文。 – user2357112