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中的is和id用法分析
Jan 26 Python
详解Python中的Descriptor描述符类
Jun 14 Python
Python中字符串的常见操作技巧总结
Jul 28 Python
Python实现统计代码行的方法分析
Jul 12 Python
Python探索之ModelForm代码详解
Oct 26 Python
python实现简单多人聊天室
Dec 11 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
Python socket聊天脚本代码实例
Jan 02 Python
python利用 keyboard 库记录键盘事件
Oct 16 Python
Python类class参数self原理解析
Nov 19 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
Mar 03 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数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
javascript解决小数的加减乘除精度丢失的方案
2016/05/31 Javascript
基于JavaScript实现在新的tab页打开url
2016/08/04 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
javascript 将共享属性迁移到原型中去的实现方法
2016/08/31 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
深入理解React高阶组件
2017/09/28 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
Python 中Django安装和使用教程详解
2019/07/03 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
一年级学生期末评语
2014/04/21 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
2015年助残日活动总结
2015/03/27 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis