zoukankan      html  css  js  c++  java
  • 函数的嵌套

    函数嵌套

    一、函数的嵌套定义

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

    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

  • 相关阅读:
    golang 反射和利用反射取结构体值
    golang 实现Lru
    跨域
    JS原型链
    cookie 、sessionStorage与localStorage的区别
    计算真实div盒子的宽度和高度
    div水平垂直居中
    清除浮动的几种方法
    JS中for循环和定时器的小问题
    转换字符串和转换数字类型
  • 原文地址:https://www.cnblogs.com/Lin2396/p/11568235.html
Copyright © 2011-2022 走看看