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 布尔操作实现代码
Mar 23 Python
python抓取并保存html页面时乱码问题的解决方法
Jul 01 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
Aug 07 Python
python中的文件打开与关闭操作命令介绍
Apr 26 Python
对python字典元素的添加与修改方法详解
Jul 06 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
Mar 27 Python
利用python实现汉字转拼音的2种方法
Aug 12 Python
Python使用psutil获取进程信息的例子
Dec 17 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
Mar 08 Python
Python自动化办公Excel模块openpyxl原理及用法解析
Nov 05 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 Python
基于Python实现股票收益率分析
Apr 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
如何使用GDB调试PHP程序
2015/12/08 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
Angular2中监听数据更新的方法
2018/08/31 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
vue 组件简介
2020/07/31 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python简单I/O操作示例
2019/03/18 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
在职人员函授期间自我评价分享
2013/11/08 职场文书
工艺工程师工作职责
2013/11/23 职场文书
企业文化演讲稿
2014/05/20 职场文书
会计学专业自荐信
2014/06/25 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
丧事主持词
2015/07/02 职场文书
小学远程教育工作总结
2015/08/13 职场文书
Python与C++中梯度方向直方图的实现
2022/03/17 Python
nginx设置资源请求目录的方式详解
2022/05/30 Servers