定義和呼叫簡單函式

使用 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 語句用作函式體,這是一個空操作 - 當它被執行時,沒有任何反應。它做了它的意思,它跳過了。當語法需要語句但不需要執行任何程式碼時,它可用作佔位符。