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实现人人网登录示例分享
Jan 19 Python
在Python下进行UDP网络编程的教程
Apr 29 Python
Python时间获取及转换知识汇总
Jan 11 Python
Python实现通讯录功能
Feb 22 Python
使用django-crontab实现定时任务的示例
Feb 26 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
Python使用装饰器模拟用户登陆验证功能示例
Aug 24 Python
Python异常处理操作实例详解
Aug 28 Python
浅谈Python traceback的优雅处理
Aug 31 Python
python使用SQLAlchemy操作MySQL
Jan 02 Python
Pycharm修改python路径过程图解
May 22 Python
Python加载数据的5种不同方式(收藏)
Nov 13 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
YII使用url组件美化管理的方法
2015/12/28 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
PHP7 新增常量
2021/03/09 PHP
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
jQuery 使用手册(四)
2009/09/23 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
JavaScript 验证码的实例代码(附效果图)
2013/03/22 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
Vue加载组件、动态加载组件的几种方式
2018/08/31 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
Python下的twisted框架入门指引
2015/04/15 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
生物化工专业个人自荐信
2013/09/26 职场文书
公司庆典欢迎词
2015/01/26 职场文书
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫