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 相关文章推荐
天翼开放平台免费短信验证码接口使用实例
Dec 18 Python
python集合类型用法分析
Apr 08 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
python中将字典形式的数据循环插入Excel
Jan 16 Python
浅谈python配置与使用OpenCV踩的一些坑
Apr 02 Python
Python中shapefile转换geojson的示例
Jan 03 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
Python自动抢红包教程详解
Jun 11 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
Jun 02 Python
jupyter notebook快速入门及使用详解
Nov 13 Python
celery在python爬虫中定时操作实例讲解
Nov 27 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数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
js获取图片长和宽度的代码
2009/11/24 Javascript
javascript 函数使用说明
2010/04/07 Javascript
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
JavaScript去除数组里重复值的方法
2015/07/13 Javascript
H5手机端多文件上传预览插件
2017/04/21 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
python学习必备知识汇总
2017/09/08 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
python实现定时自动备份文件到其他主机的实例代码
2018/02/23 Python
简单了解python元组tuple相关原理
2019/12/02 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
Keras 加载已经训练好的模型进行预测操作
2020/06/17 Python
Python分类测试代码实例汇总
2020/07/23 Python
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
上海期货面试题
2014/01/31 面试题
学生社团文化节开幕式主持词
2014/03/28 职场文书
高三霸气励志标语
2014/06/24 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
打架检讨书
2015/01/27 职场文书
班主任自我评价范文
2015/03/11 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
公司开业主持词
2015/07/02 职场文书