python函数的两种嵌套方法使用


Posted in Python onApril 02, 2022

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,打印出来。

到此这篇关于python函数的两种嵌套方法使用的文章就介绍到这了,更多相关python函数嵌套内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
用python分割TXT文件成4K的TXT文件
May 23 Python
Python使用random和tertools模块解一些经典概率问题
Jan 28 Python
基于Python Numpy的数组array和矩阵matrix详解
Apr 04 Python
python 匹配url中是否存在IP地址的方法
Jun 04 Python
【python】matplotlib动态显示详解
Apr 11 Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 Python
如何用Python制作微信好友个性签名词云图
Jun 28 Python
Python正则表达式匹配数字和小数的方法
Jul 03 Python
python连接mongodb集群方法详解
Feb 13 Python
Python解析微信dat文件的方法
Nov 30 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
Jan 27 Python
Python编写nmap扫描工具
Jul 21 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Python实现提取PDF简历信息并存入Excel
Apr 02 #Python
python对文档中元素删除,替换操作
Apr 02 #Python
Python中第三方库Faker的使用详解
Python数据处理的三个实用技巧分享
Python+Tkinter打造签名设计工具
Python正则表达式中flags参数的实例详解
Apr 01 #Python
You might like
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
javascript 快速排序函数代码
2012/05/30 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
js Dom实现换肤效果
2017/10/21 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
django定期执行任务(实例讲解)
2017/11/03 Python
matplotlib绘制动画代码示例
2018/01/02 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
python 从list中随机取值的方法
2020/11/16 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
意大利制造的西装、衬衫和针对男士量身定制的服装:Lanieri
2018/04/08 全球购物
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
拓展策划方案
2014/06/03 职场文书
微笑服务标语
2014/06/24 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
销售助理岗位职责
2015/02/11 职场文书
2015年初中教务处工作总结
2015/07/21 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书