Python是一種面向對象的編程語言,自由、開放、簡單、易學、易用,具有快速原型開發的能力。Python語言的核心理念是用代碼最少的原則解決問題。
一、def關鍵字簡介
在Python中,def是定義函數的關鍵字,用於定義函數,函數是一塊可以被重複使用的程序代碼塊,它可以接受輸入參數並且在內部執行一系列操作以得到輸出結果。使用def定義函數的語法如下:
def function_name(parameters):
"""docstring"""
statement(s)
其中,function_name是函數名,parameters是參數列表,docstring是函數說明字元串,statement(s)是要執行的語句塊。
二、函數參數的分類和實例
在Python中,函數參數可以分為位置參數、關鍵字參數和默認參數。
1. 位置參數
位置參數是指按照函數參數列表定義順序傳遞的參數,函數定義中的參數列表是位置參數。
def my_func(a, b, c):
print(a,b,c)
my_func(1,2,3)
輸出結果:
1, 2, 3
2. 關鍵字參數
關鍵字參數是指按照參數名稱傳遞的參數,可以不按照函數定義中的參數列表順序傳遞參數。
def my_func(a, b, c):
print(a,b,c)
my_func(b=2,a=1,c=3)
輸出結果:
1, 2, 3
3. 默認參數
默認參數是指有默認值的函數參數,如果不傳遞參數,則使用默認值。
def my_func(a, b, c=3):
print(a,b,c)
my_func(1,2)
輸出結果:
1, 2, 3
三、函數的返回值
在Python中,使用return語句來返回函數結果。如果沒有return語句,則函數默認返回None。
def my_func(a, b):
return a+b
result = my_func(1,2)
輸出結果:
3
四、lambda表達式
lambda表達式是一種簡短的函數定義方式,它由一個單獨的語句組成,可以作為匿名函數傳遞。
my_lambda = lambda x, y: x+y
result = my_lambda(1,2)
輸出結果:
3
五、函數的調用
在Python中,調用函數時需要提供參數,參數可以是位置參數、關鍵字參數或參數列表。
def my_func(a, b, c):
print(a,b,c)
my_func(1,2,3)
my_func(a=1,b=2,c=3)
my_func(*[1,2,3])
my_func(**{"a":1,"b":2,"c":3})
輸出結果:
1, 2, 3
1, 2, 3
1, 2, 3
1, 2, 3
六、函數的高級特性
在Python中,函數具有一些高級特性,如閉包、裝飾器、生成器等。
1. 閉包
閉包是指一個函數內部定義的函數,並且該內部函數可以訪問外部函數的變數。通過保持外部函數的狀態來實現閉包。
def outer_func(msg):
def inner_func():
print(msg)
return inner_func
my_func = outer_func("Hello")
my_func()
輸出結果:
Hello
2. 裝飾器
裝飾器是指一個可以接受函數作為參數並返回函數的函數,它可以在運行時通過修改、擴展已有函數的行為。
def my_decorator(func):
def wrapper(*args, **kwargs):
print("Before function is called.")
result = func(*args, **kwargs)
print("After function is called.")
return result
return wrapper
@my_decorator
def my_func(a, b):
return a+b
result = my_func(1,2)
輸出結果:
Before function is called.
After function is called.
3
3. 生成器
生成器是一種特殊的函數,它可以在調用時暫停和恢復執行狀態,並且可以用於迭代。
def my_generator():
yield 1
yield 2
yield 3
for i in my_generator():
print(i)
輸出結果:
1
2
3
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/192470.html