python函数的两种嵌套方法使用
作者:小小程序员ol 时间:2022-01-14 08:06:58
python函数的两种嵌套方法使用
函数的嵌套有两种方式:
交叉嵌套
回环嵌套
交叉嵌套
交叉嵌套的方式是在本函数中调用同一级或上一级函数的嵌套方法:
def func(foo):
print(1)
foo()
print(3)
def a():
print(1)
b = func(a)
print(b)
输出的结果为:
1
1
3
None
首先,程序会将 Python 文件中顶格的代码运行。函数 func 和 a 都是先开辟内存空间存储起来,但不会被执行。当程序走到赋值操作时,会先执行等号右边的代码。函数 func 被调用,函数 a 作为参数被传到 func 中。func 函数被执行,顺序也是从上往下,先是把 1 打印出来,然后调用参数 foo。
需要注意的是,foo 是形参,实参是 a。调用 foo 在此时的意思是调用函数 a。函数 a 被调用,又打印出一个 1 来。函数 a 运行完毕,返回至函数 func,继续执行下面的代码,打印出 3 来。最后,函数默认返回 None,赋值给 b。程序运行结束。
再看下面的代码:
def func():
print(1)
print("我太难了")
print(2)
def foo(b):
print(3)
ss = b()
print(ss)
print(4)
def f(a,b):
a(b)
f(foo,func)
输出的结果为:
3
1
我太难了
2
None
4
跟上面一样,先将函数全都加载到新开辟的内存空间中,但不执行。到最后 f 函数被调用,foo 和 func 两个函数作为参数被传到函数 f 中。在函数 f 中,foo 函数被调用,参数为 func 函数。进入到 foo 函数,先打印 3。到赋值语句,先执行等号右边的代码,函数 func 被调用。
在函数 func 中,打印三个内容 1、我太难了 和 2。函数默认返回值为 None,被赋值给 ss。打印 ss 就是打印 None。最后打印 4,然后返回到函数 f,再返回到全局空间。执行结束。
回环函数
回环函数就是在函数中调用下级函数的嵌套方法:
def func(a,b):
def foo(b,a):
print(b,a)
return foo(a,b) #先执行函数调用
a = func(4,7)
print(a)
输出的结果为:
4 7
None
函数依然先存储在新开辟的空间中不会被调用。运行到赋值语句时,还是先执行等号右边的代码,将两个数字传到函数 func中。在函数内部,依然是先开辟空间把函数 foo 放进去。运行到 return 不会马上终止函数,而是先运行 return 后面的代码。foo 函数被调用,传进去的值是 4 和 7,然后打印出来。
需要注意的是,函数 foo 的形参与函数 func 的形参是相同的,不要给搞混了。日常写代码时不建议这样使用。打印出 4 和 7 之后,运行到函数最后一行,函数默认返回 None。然后再赋值给 a,打印出来。
来源:https://www.cnblogs.com/python960410445/p/16083933.html
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
python用match()函数爬数据方法详解
![](https://img.aspxhome.com/file/2023/1/60731_0s.jpg)
python利用xlsxwriter模块 操作 Excel
![](https://img.aspxhome.com/file/2023/4/90944_0s.png)
使用OpenCV circle函数图像上画圆的示例代码
Python中if语句的使用方法及实例代码
![](https://img.aspxhome.com/file/2023/2/98922_0s.png)
一个输入框提示列表效果
IE6浮出层穿透解决方案中的iframe高度自适应
python中随机函数random用法实例
python利用numpy存取文件案例教程
![](https://img.aspxhome.com/file/2023/5/95295_0s.png)
Oracle中sys和system的区别小结
使用Python脚本将绝对url替换为相对url的教程
python模型集成知识点总结
一起感受HTML5和CSS3的能量[译]
Tensorflow的DataSet的使用详解
python线性插值解析
![](https://img.aspxhome.com/file/2023/7/82947_0s.jpg)
asp如何从数据库中删除废旧的电子信箱地址?
Python图片验证码降噪和8邻域降噪
![](https://img.aspxhome.com/file/2023/2/95562_0s.bmp)
sqlserver中在指定数据库的所有表的所有列中搜索给定的值
Python爬虫获取豆瓣电影并写入excel
![](https://img.aspxhome.com/file/2023/4/76724_0s.png)
Python使用folium excel绘制point
![](https://img.aspxhome.com/file/2023/3/80593_0s.png)
Python设计模式行为型责任链模式
![](https://img.aspxhome.com/file/2023/2/77012_0s.png)