一、普通函數定義
在Python中,函數是一種可重複使用的代碼塊,可以接受傳遞給它的參數並返回一個結果。而一般情況下,我們使用def語句來進行普通函數的定義。
示例:
def add(a, b):
return a+b
result = add(1,2)
print(result)
這裡定義了一個add函數,它可以接收兩個參數a和b,將它們相加,並通過return語句返回它們的和。在調用add函數時,我們向它傳遞了參數1和2,它返回了它們的和3,最終被存儲在變量result中,並通過print語句輸出。
通過這種方式定義函數,我們可以編寫大量可復用的代碼,使得程序更加簡潔和易於維護。
二、Lambda函數
Lambda函數也被稱作匿名函數,指的是一種無需使用def關鍵字即可定義的函數。Lambda函數通常用於一次性的操作場景,可以接受任意數量的參數,但只能返回一個表達式的值。
示例:
add = lambda x,y: x+y
result = add(1,2)
print(result)
這裡使用Lambda函數定義了一個add函數,它接受兩個參數x和y,將它們相加並返回它們的和。在調用add函數時,我們向它傳遞了參數1和2,它返回了它們的和3,最終被存儲在變量result中,並通過print語句輸出。
Lambda函數通常被用於需要一小段簡單代碼的情況,例如在列表排序、過濾等操作中。
三、裝飾器函數
裝飾器函數是一種可以用來動態修改函數的行為的函數。它們是一種特殊的函數,可以接受一個函數作為輸入,並返回另一個函數作為輸出,而這個輸出函數通常會在輸入函數被調用前或調用後執行一些特定的操作。
示例:
def log(func):
def wrapper(*args, **kwargs):
print('{} is running...'.format(func.__name__))
return func(*args, **kwargs)
return wrapper
@log
def add(a, b):
return a+b
result = add(1,2)
print(result)
這裡定義了一個裝飾器函數log,它接受一個參數func,表示要被裝飾的函數。在函數log內部定義了一個名為wrapper的函數,它接受任意數量的位置參數和關鍵字參數,並在函數被調用前打印一段信息。然後它調用被裝飾的函數,將其傳入的參數全部傳遞給該函數,並返回它的執行結果。
我們在add函數定義的前面使用了一個@log的語法糖。它表示將add函數作為參數傳遞給log函數,並將它的執行結果重新賦值給add變量。因此,當我們調用add函數時,實際上調用的是經過log裝飾過的wrapper函數。
裝飾器函數可以讓我們在無需修改原函數代碼的情況下,對函數的行為進行擴展或修改。它們是Python語言中的一種特殊語法,通常可以用於增加函數的性能、實現權限驗證、打印日誌等方面。
原創文章,作者:JNDE,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/148844.html