定義和呼叫簡單函式
使用 def
語句是在 python 中定義函式的最常用方法。此語句是一個所謂的單子句複合語句,語法如下:
def function_name(parameters):
statement(s)
function_name
被稱為函式的識別符號。由於函式定義是可執行語句,因此它的執行將函式名稱繫結到函式物件,稍後可以使用識別符號呼叫該函式物件。
parameters
是一個可選的識別符號列表,它在呼叫函式時繫結到作為引數提供的值。函式可以具有任意數量的引數,這些引數由逗號分隔。
statement(s)
- 也稱為函式體 - 是每次呼叫函式時執行的非空語句序列。這意味著函式體不能為空,就像任何縮排塊一樣 。
這是一個簡單函式定義的例子,其目的是在每次呼叫時列印 Hello
:
def greet():
print("Hello")
現在讓我們呼叫定義的 greet()
函式:
greet()
# Out: Hello
這是函式定義的另一個例子,它接受一個引數並在每次呼叫函式時顯示傳入的值:
def greet_two(greeting):
print(greeting)
之後,必須使用引數呼叫 greet_two()
函式:
greet_two("Howdy")
# Out: Howdy
你還可以為該函式引數提供預設值:
def greet_two(greeting="Howdy"):
print(greeting)
現在你可以在不給出值的情況下呼叫函式:
greet_two()
# Out: Howdy
你會注意到,與許多其他語言不同,你不需要顯式宣告函式的返回型別。Python 函式可以通過 return
關鍵字返回任何型別的值。一個功能可以返回任意數量的不同型別!
def many_types(x):
if x < 0:
return "Hello!"
else:
return 0
print(many_types(1))
print(many_types(-1))
# Output:
0
Hello!
只要呼叫者正確處理了這個問題,這就是完全有效的 Python 程式碼。
在沒有 return 語句的情況下到達執行結束的函式將始終返回 None
:
def do_nothing():
pass
print(do_nothing())
# Out: None
如前所述,函式定義必須具有函式體,非空語句序列。因此 pass
語句用作函式體,這是一個空操作 - 當它被執行時,沒有任何反應。它做了它的意思,它跳過了。當語法需要語句但不需要執行任何程式碼時,它可用作佔位符。