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调用浏览器并打开一个网址的例子
Jun 05 Python
深入解析Python中的集合类型操作符
Aug 19 Python
Python解析excel文件存入sqlite数据库的方法
Nov 15 Python
linecache模块加载和缓存文件内容详解
Jan 11 Python
TensorFlow平台下Python实现神经网络
Mar 10 Python
Django框架使用富文本编辑器Uedit的方法分析
Jul 31 Python
python实现opencv+scoket网络实时图传
Mar 20 Python
在keras下实现多个模型的融合方式
May 23 Python
解决tensorflow读取本地MNITS_data失败的原因
Jun 22 Python
django restframework serializer 增加自定义字段操作
Jul 15 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
Feb 06 Python
python爬虫破解字体加密案例详解
Mar 02 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程序Laravel 5框架的优化技巧
2016/07/18 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
jquery对象和DOM对象的相互转换详解
2016/10/18 Javascript
layui导航栏实现代码
2017/05/19 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
vue+element实现动态加载表单
2020/12/13 Vue.js
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
跟老齐学Python之Python文档
2014/10/10 Python
Python中的自省(反射)详解
2015/06/02 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
python函数定义和调用过程详解
2020/02/09 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
英国精品买手店:Browns Fashion
2016/09/29 全球购物
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
性能测试工程师的面试题
2015/02/20 面试题
工程造价管理专业大专生求职信
2013/10/06 职场文书
服装厂厂长职责
2013/12/16 职场文书
公司成立感言
2014/01/11 职场文书
银行员工职业规划范文
2014/01/21 职场文书
计算机求职信
2014/07/02 职场文书
我的中国心演讲稿
2014/09/04 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
质量整改通知单
2015/04/21 职场文书
邹越演讲观后感
2015/06/15 职场文书
小组组名及励志口号
2015/12/24 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS