Python基础之函数嵌套知识总结


Posted in Python onMay 23, 2021

内部/内嵌函数

1、定义:在一个函数的函数体内使用关键字def关键字定义一个新的函数,这个新的函数就叫做内部/内嵌函数。
2、注意点:内部函数的整个函数体都在外部函数的作用域内,如果在内部函数内没有对外部函数变量的引用,即访问,那么除了在外部函数体内,在其他任何地方都不能对内部函数进行调用。
3、内部函数可以访问外部函数的变量,但是不能对外部函数中的变量进行使用,即不能试图改变外部函数中的变量。但可以使用nonlocal关键字修饰内部函数的变量,修饰后内部函数就可以访问并使用外部函数的变量。?1

def out_func(out_name):
    def in_func(in_name):
        print(out_name.title() + " " + in_name.title())  # 内部函数可以访问外部函数的变量,但不能使用不能改变
    print("this is user()")
    return in_func # 返回的是内部函数对象,也就是内部函数地址。

a = out_func("tom")
print(a)
print(type(a))

输出结果:

Python基础之函数嵌套知识总结

通过输出内容我们可以看到,调用out_func函数后,返回的内容是一个函数地址,类型是一个函数

def out_func(out_name):
    def in_func(in_name):
        print(out_name.title() + " " + in_name.title())  # 内部函数可以访问外部函数的变量,但不能使用不能改变
    print("this is user()")
    return in_func # 返回的是内部函数对象,也就是内部函数地址。

a = out_func("tom") # 返回的是in_func这个函数对象
a("jerry") # 相当于in_func("jerry")

out_func("tom")("jerry")

输出结果:

Python基础之函数嵌套知识总结

a = out_func("tom")语句是调用外部函数,执行后变量a就相当于in_funca("jerry")语句相当于in_func("jerry")

out_func("tom")("jerry") 语句和a = out_func("tom")a("jerry")结果是一样的。

def out_func(out_name):
    def in_func(in_name):
        print(out_name.title() + " " + in_name.title())  # 内部函数可以访问外部函数的变量,但不能使用不能改变
    print("this is user()")
    return in_func # 返回的是内部函数对象,也就是内部函数地址。
    
in_func("test")  # 局部变量 不能在外部函数外部使用

输出结果:

Python基础之函数嵌套知识总结

内部函数也算是外部函数的一个局部变量,所以在外部函数外部,它也是没有作用域的。

Tip:

title():将调用其的字符串首字母大写

到此这篇关于Python基础之函数嵌套知识总结的文章就介绍到这了,更多相关Python函数嵌套内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中将字典转换成其json字符串
Jul 16 Python
Python中非常实用的一些功能和函数分享
Feb 14 Python
Python使用MONGODB入门实例
May 11 Python
基于Python __dict__与dir()的区别详解
Oct 30 Python
python实现聚类算法原理
Feb 12 Python
Tornado Web Server框架编写简易Python服务器
Jul 28 Python
Python----数据预处理代码实例
Mar 20 Python
Django接收post前端返回的json格式数据代码实现
Jul 31 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
python模拟点击在ios中实现的实例讲解
Nov 26 Python
pandas统计重复值次数的方法实现
Feb 20 Python
利用python Pandas实现批量拆分Excel与合并Excel
May 23 #Python
Python基础之元编程知识总结
May 23 #Python
Python利用folium实现地图可视化
python爬虫之selenium库的安装及使用教程
教你利用python实现企业微信发送消息
python基础之文件处理知识总结
May 23 #Python
Python绘制地图神器folium的新人入门指南
You might like
php动态生成JavaScript代码
2009/03/09 PHP
php class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
javascript提取URL的搜索字符串中的参数(自定义函数实现)
2013/01/22 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
jquery.zclip轻量级复制失效问题
2017/01/08 Javascript
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
Python解惑之整数比较详解
2017/04/24 Python
Python定时器实例代码
2017/11/01 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
Python smtp邮件发送模块用法教程
2020/06/15 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
如何利用python生成MD5并去重
2020/12/07 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
努比亚手机官网:nubia
2016/10/06 全球购物
德国购买门票网站:ADticket.de
2019/10/31 全球购物
期末总结的个人自我评价
2013/11/02 职场文书
工作自我评价怎么写
2014/01/29 职场文书
病人慰问信范文
2015/02/15 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript