0
A
回答
4
你可以在任何地方放置一個函數定義。重要的是該名稱的可見性。
A def functionname():
複合語句包含一個隱含的functionname = functionobject(function code)
賦值;名稱functionname
被綁定到一個新的函數對象。
每當你想使用functionname
(調用它,或以其他方式提到它),名稱必須是可見。這意味着您可以按任意順序定義函數,只要它們在調用時可到達即可。
例如:
def spam():
baz()
def foo():
def bar():
print "Hello world!"
return bar
baz = foo()
spam()
作品,因爲spam()
不叫,直到結束。它使用名稱爲baz
,這是一個全球性的,baz
被綁定到foo()
的結果,在spam()
被定義之後,但在spam()
被調用之前。
在foo
我們定義了一個函數bar()
,而返回了它。 bar
是foo
中的局部變量,在該函數外部不可見,但因爲我們返回了函數對象,所以我們可以將它分配給全局名稱。
換句話說,函數遵循與Python中的常規變量相同的規則;大多數情況下,您將它們定義爲全局變量,但您也可以在函數內部創建它們。
相關問題
- 1. 必須聲明可變標
- 2. 必須聲明?
- 3. 我必須在哪裏聲明我的全局變量?
- 4. hil_message必須聲明
- 5. 「標識符必須聲明」使用功能
- 6. 「必須聲明表變量」
- 7. 組件必須聲明
- 8. 必須聲明標量
- 9. 必須聲明表變量「@」。
- 10. 錯誤:必須聲明@newsSummary
- 11. 必須聲明表變量
- 12. ASP.NET C#必須聲明
- 13. 必須在哪裏寫WriteConcern?
- 14. 語言必須具備哪些功能?
- 15. 爲什麼我明確地必須在這裏聲明函數?
- 16. 哪裏可以找到明智的ag-grid版本功能
- 17. 哪裏可以放實用功能
- 18. 哪裏可以定義虛擬功能?
- 19. 必須聲明標量變量「@Hlava」必須聲明標量變量「@Vaha」
- 20. 在JavaScript中創建循環時,我必須在哪裏聲明變量?
- 21. 必須刷新以運行功能
- 22. 聲明功能
- 23. 聲明DRV_QUERYFUNCTIONINSTANCEID在哪裏?
- 24. MySQL。哪裏聲明。查詢
- 25. mysql忽略哪裏聲明
- 26. Android在哪裏聲明SharedPreferences
- 27. 在哪裏聲明接口?
- 28. CPU_ALLOC的聲明在哪裏?
- 29. doctype聲明去哪裏?
- 30. 聲明struct vop_vector在哪裏?
它可以位於其他函數,塊語句中。然而,將後者或放在腳本中的任何地方都不是一個好主意。讓你的代碼看起來很亂。 – aIKid