函数嵌套

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()
原文地址:https://www.cnblogs.com/datatool/p/13457933.html