(6)函数嵌套

函数的嵌套分为两类:
1、函数的嵌套定义: 在函数内部又定义了一个函数

def foo():

  x=1

  #print(x)

  def bar():

    print('from bar')

      def shop():

        print(‘开始购物’)

     shop()   #这里调取第三层的功能,所以从第三层开始就每一层都调用一次函数本身
  bar()
foo()

PS:函数嵌套调取局部函数的功能,如果要调取那一层的功能,name就在在这层功能开始每一层都要调用一次函数本身

2、函数的嵌套调用: 在调用一个函数的内部又调用其他函数

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

函数嵌套实例:求圆周率

from math import pi   #从math内置函数调取pi圆周率(pi就是圆周率)

def circle(radius,types=0):   #这里定义一个函数有两个实参
  def perimiter(radius):
    return 2 * pi * radius  #radius 就是半径
  
  def area(radius):
    return pi * (radius ** 2)

  if types == 0:
    res=perimiter(radius)
  elif types == 1:
    res=area(radius)
  else:
  print('不支持的操作,types必须传入0或者1')

  return res
circle(10,1)   #10是半径,1传给types调取功能

PS:计算程序肯定有一个返回值,所以必须将计算结果放入一个变量中,然后程序结束后返回这个变量

原文地址:https://www.cnblogs.com/shizhengquan/p/9977093.html