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实现的百度站长自动URL提交小工具
Jun 27 Python
Python中使用Boolean操作符做真值测试实例
Jan 30 Python
python模拟Django框架实例
May 17 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
Apr 20 Python
python生成器与迭代器详解
Jan 01 Python
使用Python快速制作可视化报表的方法
Feb 03 Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 Python
Python实现字符串中某个字母的替代功能
Oct 21 Python
基于pytorch的lstm参数使用详解
Jan 14 Python
python实现人脸签到系统
Apr 13 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
Jun 01 Python
详解pandas apply 并行处理的几种方法
Feb 24 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排序算法的复习和总结
2012/02/15 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
JavaScript常用标签和方法总结
2015/09/01 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
python为tornado添加recaptcha验证码功能
2014/02/26 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
联谊活动总结
2014/08/28 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
2014年营销工作总结
2014/11/22 职场文书
小学优秀教师材料
2014/12/15 职场文书
小升初自荐信范文
2015/03/05 职场文书
2015年库房工作总结
2015/04/30 职场文书
党小组评议意见
2015/06/02 职场文书
讲座新闻稿
2015/07/18 职场文书
周一问候语大全
2015/11/10 职场文书
Python读写yaml文件
2022/03/20 Python
Python实现仓库管理系统
2022/05/30 Python
JavaScript设计模式之原型模式详情
2022/06/21 Javascript