
函数的嵌套函数的嵌套在函数里面还有函数。分为外函数和内函数。专门为函数内部提供服务的是嵌套函数, 像起到减缩代码重复作用的那种, 要是想调用函数, 就得运用函数名来实现, 内函数的情况也是如此这般。要是不借助函数名去调用内函数, 那么内函数就会始终都不会被执行。内函数的调用于函数外部调用内函数该如何是好呢? 首先, 直接去调用内函数这种做法是不行的 , 得先将外函数的代码块予以执行才行。def func1(): print(这是外部函数) def func2(): print(这是内部函数) func2()没有去执行外函数里边的代码块, 没能找到内函数, 于是报告说名称‘func2’并不, 函数func2()没有被定义。有几种方式可以实现对内函数的调用。1.在外函数内部调用内函数即用函数名调用def func1(): print(这是外部函数) def func2(): print(这是内部函数) func2() #函数名调用内函数 func1()这样调用外函数也会执行内函数的代码块了2.可以用调用内函数要在使用之前, 得先说一点: 我们运用的都是借助“函数名()“来调用函数的办法, 要是单独使用函数名”, 我们将会获取函数的内存地址函数名后面加上括号才能够告知, 参数是否匹配得上, 接着执行函数的代码块def func1(): print(这是外部函数) def func2(): print(这是内部函数) return func2() func1()函数并不存在返回值意思就是返回值是None, “func2()”以及“func2()”所产生的效果是相同的。def func1(): print(这是外部函数) def func2(): print(这是内部函数) return func2() m func1() #调用函数func1(),调用函数func2的方法 print(m) #m为Nonedef func1(): print(这是外部函数) def func2(): print(这是内部函数) return func2 m func1() print(m) # #执行结果为 这是外部函数 function func1.locals.func2 at 0x0000000002EB6620要能在所呈现的上面之处看明, 运用函数名所获取得到的乃是函数的地址, 我们能够以一个变量去指向此地址, 这形同于造出一个变量, 而这个变量其实所指向的就是函数所处地址。鉴于唯有函数名而不可以用于调用函数的方法, 因而进行外函数调用之际得要用到双括号。def func1(): print(这是外部函数) def func2(): print(这是内部函数) return func2 func1()() ##执行func1()会返回func2然后再func2() # m func1() # m()我们能够借助func1()返回一个函数func2, 再运用添加一个括号的方式来调用内函数的办法。若要调用内函数, 首先得调用外函数, 也就是要执行外函数的代码块, 才会产生内函数调用的环境。于外函数内部, 既能用函数名调用内函数, 也能够进行内函数的调用, 要是用到函数本身的地址, 调用外函数时会用到双括号, 先调用func1()从而得到func2, 接着再func2()。假设func2(), 此种情况与func2()相仿, 均旨在告知调用内函数。变量的作用范围处于外函数之中的变量, 跟处于内函数之中的变量, 是存在区别的, 其作用范围并不相同。内函数能够使用外函数的变量, 然而要是打算在内部函数里对外部函数变量的值进行修改, 那就得运用关键字。def func1(): b 2 def func2(): nonlocal b b b - 1 func2() print(b)函数的嵌套调用在一个函数里面调用别的函数def print1(): print(这是第一个函数) def print2(): print(这是定义的第二个函数) print1() #在print2()中调用print1() print2()