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安装第三方库及常见问题处理方法汇总
Sep 13 Python
Python中类的初始化特殊方法
Dec 01 Python
Python即时网络爬虫项目启动说明详解
Feb 23 Python
python 统计列表中不同元素的数量方法
Jun 29 Python
浅谈Python 列表字典赋值的陷阱
Jan 20 Python
Python3数字求和的实例
Feb 19 Python
Python面向对象之类的封装操作示例
Jun 08 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
Python中实现一行拆多行和多行并一行的示例代码
Sep 06 Python
python 实现表情识别
Nov 21 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表单提交与$_POST实例分析
2015/01/26 PHP
php创建无限级树型菜单
2015/11/05 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
js控制表单操作的常用代码小结
2013/08/15 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
js实现上一页下一页的效果【附代码】
2016/03/10 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
vue生命周期与钩子函数简单示例
2019/03/13 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
在layui.use 中自定义 function 的正确方法
2019/09/16 Javascript
Python中super的用法实例
2015/05/28 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
python去除字符串中的换行符
2017/10/11 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
python Zmail模块简介与使用示例
2020/12/19 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
高等教育专业自荐信范文
2014/03/26 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
就业证明函
2015/06/17 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书