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

  • 相关阅读:
    POJ Problem 1363 Rails 【栈】
    POJ Problem 3040 Allowance 【贪心】
    ACM 程序对拍
    HDU Problem
    POJ
    HDU Problem
    HDU Problem—2124 Repair the Wall 【贪心】
    HDU Problem 1052 Tian Ji -- The Horse Racing 【贪心】
    POJ Problem Radar Installation 【贪心】
    Beyond Compare和输出文件比较的方法
  • 原文地址:https://www.cnblogs.com/Lin2396/p/11568235.html
Copyright © 2011-2022 走看看