函数的嵌套

函数嵌套

一、函数的嵌套定义

函数内部定义的函数,无法在函数外部使用内部定义的函数

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

现在有一个需求,通过给一个函数传参即可求得某个圆的面积或者圆的周长。也就是说把一堆工具丢进工具箱内,之后想要获得某个工具,直接从工具箱中获取就行了

那么函数嵌套的意义在哪里呢,是为了当需要某个函数方法的时候,能够通过调用的方式来直接获取方法,避免了代码的重复,提高了编写代码的效率

from math import pi


def circle(radius, action):
    def area():
        return pi * (radius ** 2)

    def perimeter():
        return 2 * pi * radius

    if action == 'area':
        return area()
    else:
        return perimeter()


print(f"circle(10,'area'):{circle(10, 'area')}")
print(f"circle(10,action='perimeter':{circle(10, action='perimeter')}")

circle(10,'area'):314.1592653589793
circle(10,action='perimeter':62.83185307179586

二、函数的嵌套调用

我们可以使用函数名的方式来调用函数,在重复一遍无法在函数外部使用内部定义的函数

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


print(max4(1, 2, 3, 4))

4

转载于:https://www.cnblogs.com/Lin2396/p/11568235.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值