1. 程式人生 > 實用技巧 >函式巢狀

函式巢狀

1、函式的巢狀呼叫:在呼叫一個函式的過程中又呼叫了其他函式
def bar():
    print('from bar')

def foo():
    print('from foo')
    bar()

foo()

# 應用示例
def max2(x,y):
    if x > y:
        return x
    else:
        return y

def max4(a,b,c,d):
    res1=max2(a,b)
    res2=max2(res1,c)
    res3=max2(res2,d)
    return res3

print
(max4(1,2,3,4))
2、函式的巢狀定義:在一個函式內部又定義了其他函式
特點:定義在函式內的函式通常情況只能函式內部使用,這是一種封閉的效果
def f1():
    def f2():
        print('from f2')

    x = 111
    # print(x)
    # print(f2)
    f2()
f1()

應用示例
from math import pi

def circle(radius,action=1):
    def perimeter(radius):
        return 2 * pi * radius

    
def area(radius): return pi * (radius * radius) if action == 1: return perimeter(radius) elif action == 2: return area(radius) print(circle(10,1)) print(circle(10,2))

3、函式巢狀定義+函式物件

def f1():
    def f2():
        print('from f2')

    return f2

res=f1()
print(res)

res()