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 相关文章推荐
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
使用Python实现博客上进行自动翻页
Aug 23 Python
python 解压pkl文件的方法
Oct 25 Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 Python
python绘制雪景图
Dec 16 Python
kafka-python 获取topic lag值方式
Dec 23 Python
基于h5py的使用及数据封装代码
Dec 26 Python
Python类和实例的属性机制原理详解
Mar 21 Python
Keras在训练期间可视化训练误差和测试误差实例
Jun 16 Python
Python使用内置函数setattr设置对象的属性值
Oct 16 Python
利用python清除移动硬盘中的临时文件
Oct 28 Python
如何理解python接口自动化之logging日志模块
Jun 15 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 pcntl_fork和pcntl_fork 的用法
2009/04/13 PHP
php 字符串函数收集
2010/03/29 PHP
PHP XML操作的各种方法解析(比较详细)
2010/06/17 PHP
PHP的几个常用数字判断函数代码
2012/04/24 PHP
3种php生成唯一id的方法
2015/11/23 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
2017/04/18 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
php表单处理操作
2017/11/16 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
javascript innerHTML使用分析
2010/12/03 Javascript
JavaScript EasyPager 分页函数
2011/05/25 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
Eclipse + Python 的安装与配置流程
2013/03/05 Python
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
中学教师管理制度
2014/01/14 职场文书
《草原的早晨》教学反思
2014/04/08 职场文书
机械设计及其自动化专业求职信
2014/06/09 职场文书
体育运动会广播稿
2014/10/05 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
家长反馈意见及建议
2015/06/03 职场文书
预备党员入党感想
2015/08/10 职场文书
改进工作作风心得体会
2016/01/23 职场文书
各国货币符号大全
2022/02/17 杂记
MySQL学习之基础命令实操总结
2022/03/19 MySQL