0
A
回答
1
是的,只要if
語句和賦值在函數定義之前被求值。
例如,按照上面的方法將工作,但你的代碼下面將不會:
def bar():
global dec
if a:
dec = decorator_1
else:
dec = decorator_2
@dec
def foo():
pass
bar()
1
你有什麼工作,但我建議實施它以不同的方式:
def dec(f):
return decorator_1(f) if a else decorator_2(f)
@dec
def foo():
print 'foo'
因爲這樣做沒有條件定義的同樣的事情。進一步說,避免引用全局變量的更簡潔的方式可以這樣定義:
def dec(a):
return decorator_1 if a else decorator_2
@dec(a)
def foo():
print 'foo'
相關問題
- 1. 根據在Python
- 2. 通過根據在Python
- 3. 排序根據在列表的Python
- 4. Python的 - 根據在另一個數組
- 5. Python入門:根據病情
- 6. 的Python:根據上名字
- 7. 的Python:根據第一列
- 8. 根據條件替換csv數據(python)
- 9. 根據在PHP
- 10. 根據在MySQL
- 11. 根據在bash
- 12. 根據在
- 13. 根據在AWK
- 14. 根據在php
- 15. 根據在Matlab
- 16. Python的 - 如何根據上一列
- 17. python:根據內容替換HTML元素
- 18. 根據公式編寫函數(Python)
- 19. 的Python:根據長度和重量
- 20. 字頻率計數根據使用python
- 21. 根據輸入Python的不同功能
- 22. Python支持根據DTD編碼文本
- 23. 的Python:插入陣列根據病情
- 24. 根據秩條件創建Groupby列Python
- 25. NaN根據Python啓動給出錯誤?
- 26. python字典根據值降序排序
- 27. python:根據需求產生線程
- 28. Python - 根據兩個變量打印
- 29. 根據條件使用Python模塊
- 30. 根據其內容更改python變量