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实现对一个函数应用多个装饰器的方法示例
Feb 09 Python
python抽取指定url页面的title方法
May 11 Python
python爬取微信公众号文章
Aug 31 Python
python 3.6.4 安装配置方法图文教程
Sep 18 Python
学习python可以干什么
Feb 26 Python
Python使用dict.fromkeys()快速生成一个字典示例
Apr 24 Python
Pycharm新手教程(只需要看这篇就够了)
Jun 18 Python
详解基于python的多张不同宽高图片拼接成大图
Sep 26 Python
使用pyqt 实现重复打开多个相同界面
Dec 13 Python
python中的线程threading.Thread()使用详解
Dec 17 Python
详解向scrapy中的spider传递参数的几种方法(2种)
Sep 28 Python
python基于OpenCV模板匹配识别图片中的数字
Mar 31 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编程中八种常见的文件操作方式
2006/11/19 PHP
php中try catch捕获异常实例详解
2014/11/21 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
2009/09/09 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
JavaScript中实现继承的三种方式和实例
2015/01/29 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
jquery实现图片放大镜功能
2015/11/23 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
Node.js log4js日志管理详解
2018/07/31 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
印度领先的眼镜电子商务网站:Lenskart
2019/12/16 全球购物
工地门卫岗位职责
2013/12/30 职场文书
消防安全宣传标语
2014/06/07 职场文书
博士生求职信
2014/07/06 职场文书
运动会报道稿300字
2014/10/02 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
委托公证书样本
2015/01/23 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书
小学家长意见怎么写
2015/06/03 职场文书