Python函數使用方法(高階用法)

2020-07-16 10:05:20
前面章節,已經介紹了 Python 函數的所有基本用法和使用注意事項。但是,Python 函數的用法還遠不止此,Python 函數還支援賦值、作為其他函數的引數以及作為其他函數的返回值。

首先,Python 允許直接將函數賦值給其它變數,這樣做的效果是,程式中也可以用其他變數來呼叫該函數,更加靈活。例如:
def my_def ():
    print("正在執行 my_def 函數")
#將函數賦值給其他變數   
other = my_def
#間接呼叫 my_def() 函數
other()
程式執行結果為:

正在執行 my_def 函數


不僅如此,Python 還支援將函數以引數的形式傳入其他函數中。例如:
def add (a,b):
    return a+b

def multi(a,b):
    return a*b

def my_def(a,b,dis):
    return dis(a,b)
   
#求 2 個數的和
print(my_def(3,4,add))
#求 2 個數的乘積
print(my_def(3,4,multi))
程式執行結果為:

7
12

通過分析上面程式不難看出,通過使用函數作為引數,可以在呼叫函數時動態傳入函數,從而實現動態改變函數中的部分實現程式碼,在不同場景中賦予函數不同的作用。

與此同時,Python 還支援函數的返回值也為函數。例如:
def my_def ():
    #區域性函數
    def indef():
        print("呼叫區域性函數")
    #呼叫區域性函數
    return indef
other_def = my_def()
#呼叫區域性的 indef() 函數
other_def()
程式執行結果為:

呼叫區域性函數

可以看到,通過返回值為函數的形式,可以擴大區域性函數的作用域。