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判断给定的字符串是否是有效日期的方法
May 13 Python
python获取目录下所有文件的方法
Jun 01 Python
Python实现的手机号归属地相关信息查询功能示例
Jun 08 Python
详解flask表单提交的两种方式
Jul 21 Python
Python实现按逗号分隔列表的方法
Oct 23 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
python @classmethod 的使用场合详解
Aug 23 Python
python同步两个文件夹下的内容
Aug 29 Python
Python实现生成密码字典的方法示例
Sep 02 Python
pandas中read_csv的缺失值处理方式
Dec 19 Python
Python叠加矩形框图层2种方法及效果
Jun 18 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全局变量和类配合使用深刻理解
2013/06/05 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
jquery 隐藏与显示tr标签示例代码
2014/06/06 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
2016/06/15 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
浅谈ng-zorro使用心得
2018/12/03 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
如何使用python爬取csdn博客访问量
2016/02/14 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
Python解决八皇后问题示例
2018/04/22 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
python处理multipart/form-data的请求方法
2018/12/26 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
协议书怎么写
2014/04/21 职场文书
高中生评语大全
2014/04/25 职场文书
小学生环保演讲稿
2014/04/25 职场文书
献爱心活动总结
2014/05/07 职场文书
管理建议书范文
2014/05/13 职场文书
意向书范本
2014/07/29 职场文书
同意迁入证明模板
2014/10/26 职场文书
队列队形口号
2015/12/25 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle
python编程实现清理微信重复缓存文件
2021/11/01 Python
《艾尔登法环》发布最新「战技」宣传片
2022/04/03 其他游戏