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实现获取序列中最小的几个元素
Sep 25 Python
python实现根据ip地址反向查找主机名称的方法
Apr 29 Python
SQLite3中文编码 Python的实现
Jan 11 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
Oct 11 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
Django 内置权限扩展案例详解
Mar 04 Python
浅谈python中get pass用法
Mar 19 Python
django富文本编辑器的实现示例
Apr 10 Python
Python实现使用dir获取类的方法列表
Dec 24 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
Apr 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 递归效率分析
2009/11/24 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
2016/10/01 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
python字符串连接的N种方式总结
2014/09/17 Python
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
pandas值替换方法
2018/07/10 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
python 实现单通道转3通道
2019/12/03 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
2020/06/04 Python
美国在线印刷公司:PsPrint
2017/10/12 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
通信工程专业女生个人求职信
2013/09/21 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
六五普法宣传标语
2014/10/06 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
电视新闻稿
2015/07/17 职场文书
农贸批发市场管理制度
2015/08/07 职场文书