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实现zencart产品数据导入到magento(python导入数据)
Apr 03 Python
Python3解决棋盘覆盖问题的方法示例
Dec 07 Python
Python进程间通信Queue实例解析
Jan 25 Python
python编辑用户登入界面的实现代码
Jul 16 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
python实现nao机器人身体躯干和腿部动作操作
Apr 29 Python
Python文本处理简单易懂方法解析
Dec 19 Python
Pycharm中Python环境配置常见问题解析
Jan 16 Python
如何以Winsows Service方式运行JupyterLab
Aug 30 Python
python在协程中增加任务实例操作
Feb 28 Python
python 机器学习的标准化、归一化、正则化、离散化和白化
Apr 16 Python
利用Python实现翻译HTML中的文本字符串
Jun 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
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
jQuery获取css z-index在各种浏览器中的返回值
2010/09/15 Javascript
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
domReady的实现案例
2016/11/23 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
EasyUI实现下拉框多选功能
2017/11/07 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
Python实现控制台进度条功能
2016/01/04 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
python如何制作英文字典
2019/06/25 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
python按行读取文件并找出其中指定字符串
2019/08/08 Python
python SocketServer源码深入解读
2019/09/17 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
Matplotlib animation模块实现动态图
2021/02/25 Python
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
高校辅导员推荐信范文
2013/12/25 职场文书
《放小鸟》教学反思
2014/04/20 职场文书
不尊敬老师的检讨书
2014/12/21 职场文书
教师年度考核个人总结
2015/02/12 职场文书
MySQL 如何设计统计数据表
2021/06/15 MySQL
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python