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改变日志(logging)存放位置的示例
Mar 27 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
Dec 31 Python
深入理解python try异常处理机制
Jun 01 Python
windows 下python+numpy安装实用教程
Dec 23 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
解决Python运行文件出现out of memory框的问题
Dec 03 Python
python队列Queue的详解
May 10 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 Python
django创建css文件夹的具体方法
Jul 31 Python
Python实现手势识别
Oct 21 Python
python接口测试返回数据为字典取值方式
Feb 12 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中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
PDO::rollBack讲解
2019/01/29 PHP
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
js获取url中"?"后面的字串方法
2014/05/15 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
wxPython 入门教程
2008/10/07 Python
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
python 读取txt,json和hdf5文件的实例
2018/06/05 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
J2EE是技术还是平台还是框架
2016/08/14 面试题
成教自我鉴定
2013/10/27 职场文书
职位说明书范文
2014/05/07 职场文书
学习方法演讲稿
2014/05/10 职场文书
学校创先争优活动总结
2014/08/28 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
暑假打工感想
2015/08/07 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技
MySQL新手入门进阶语句汇总
2022/09/23 MySQL