python 函数嵌套和嵌套调用

您所在的位置:网站首页 python调用函数代码 python 函数嵌套和嵌套调用

python 函数嵌套和嵌套调用

2023-09-16 00:34| 来源: 网络整理| 查看: 265

函数的嵌套

函数的嵌套:在函数里面还有函数。分为外函数和内函数。 嵌套函数是为函数内部服务的,比如减少代码的重复,想要调用函数,要使用函数名,内函数也一样。如果不用函数名调用内函数,内函数就永远不会执行。

内函数的调用

怎么在函数外部调用内函数呢?首先,不能直接调用内函数 ,需要先执行外函数的代码块。

def func1(): print("这是外部函数") def func2(): print("这是内部函数") func2()

没有执行外函数内部的代码块,python找不到内函数,所以报name ‘func2’ is not defined,函数func2()没有定义

有几种方式可以实现对内函数的调用。 1.在外函数内部调用内函数,即用函数名调用

def func1(): print("这是外部函数") def func2(): print("这是内部函数") func2() #函数名调用内函数 func1()

这样调用外函数也会执行内函数的代码块了

2.可以用return调用内函数

在使用return之前,需要说明一点:我们都是使用"函数名()“调用函数的方法,单独使用"函数名”,我们会得到函数的内存地址;(函数名后面加括号才会告诉python,参数是否对得上,然后执行函数的代码块。)

"return函数名()"调用内函数 def func1(): print("这是外部函数") def func2(): print("这是内部函数") return func2() func1()

函数没有返回值,即返回值为None,"return func2()"和"func2()"的效果是一样的

def func1(): print("这是外部函数") def func2(): print("这是内部函数") return func2() m = func1() #调用函数func1(),调用函数func2的方法 print(m) #m为None 外函数内部"return函数名",也可以调用内函数,只不过调用外函数时多加一个括号 def func1(): print("这是外部函数") def func2(): print("这是内部函数") return func2 m = func1() print(m) # #执行结果为 这是外部函数

上面可以看到,使用函数名得到的是函数的地址,我们可以用一个变量指向这个地址,相当于创建一个变量,这个变量指向的是函数的地址。因为只有函数名是不能调用函数的方法的,所以调用外函数时要用到双括号。

def func1(): print("这是外部函数") def func2(): print("这是内部函数") return func2 func1()() ##执行func1()会返回func2然后再func2() # m = func1() # m()

我们可以用func1()返回一个函数func2,再加一个括号调用内函数的方法。

小结:想要调用内函数,首先要调用外函数,即执行外函数的代码块,才有内函数调用的环境。在外函数内部,可以用函数名调用内函数。也可以用return调用内函数,如果return是函数本身的地址,调用外函数时会用到双括号,先调用func1()得到func2然后再func2()。如果return func2(),那么和func2()是一样的,都是告诉python调用内函数。

变量的作用范围

外函数里面的变量和内函数里面的变量是有区别的,作用范围不一样。内函数也可以使用外函数的变量,但是如果想要在内部函数修改外部函数变量的值,就要使用关键字nonlocal

def func1(): b = 2 def func2(): nonlocal b b = b - 1 func2() print(b) 函数的嵌套调用

在一个函数里面调用别的函数

def print1(): print("这是第一个函数") def print2(): print("这是定义的第二个函数") print1() #在print2()中调用print1() print2()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3