045 函數的嵌套

函數的嵌套

  • 函數的嵌套其實就是在一個函數內部在定義一個函數

1.函數的嵌套定義

  • 一旦在函數內部定義一個函數,那麼函數體內的函數,沒法在函數外部使用
def f1():
    def f2():
        print('from f2')
    f2()

f2()
# # NameError: name 'f2' is not defined
def f1():
    def f2():
        print('from f2')
    f2()

f1()
# from f2
  • 經過給一個函數傳參便可求得某個圓的面積或者圓的周長
import cmath
def circle(r,choice):

    def area():
        return cmath.pi*r**2

    def perimeter():
        return 2*cmath.pi*r

    if choice == 'area':
        return area()
    else:
        return perimeter()
res = circle(3,'perimeter')
print(res) # 18.84955592153876
res = circle(3,'area')
print(res)# 28.274333882308138

2.函數的嵌套調用

  • 經過函數嵌套求幾個數的大小
def max2(x,y):
    if x > y:
        return x
    else:
        return y
res = max2(1,2)
# print(res)

def max4(x,y,z,a):
    res = max2(x,y)
    res1 = max2(res,z)
    res2 = max2(res1,a)
    return res2

res = max4(5,4,31,3)
print(res) # 31
相關文章
相關標籤/搜索