Python笔记(八)_内部函数与闭包
2024-10-07 14:25:40
内部函数
在函数内部定义另一个函数,也就是函数的嵌套
在外部函数的作用域内,外部函数可以随意调用内部函数
由于内部函数的整个定义过程都在外部函数中,所以出了外部函数就无法再被调用了
def outside():
print('外部函数被调用')
def inside():
print('内部函数被调用')
inside()
>>>outside()
外部函数被调用
内部函数被调用
>>>inside()
NameError: name 'inside' is not defined
闭包
如果在一个内部函数里引用了外部函数的变量,此时这个内部函数就被称为闭包
如果不加关键字nonlocal来声明,就会报错,闭包仅发生在嵌套函数中
def outside():
var=3
def inside():
print(var)
var=5
print(var)
inside()
>>>outside()
UnboundLocalError: local variable 'var' referenced before assignment
修改:
def outside():
var=3
def inside():
nonlocal var 使用关键字声明
print(var)
var=5
print(var)
inside()
>>>outside()
3
5
最新文章
- 那些年,坑死自己的事之fread/fwrite
- 【leetcode】Remove Nth Node From End of List
- dlopen、dlsym和dlclose的使用
- 一、PHP MongoDB Windows7_64位安装与配置
- 如何在组件(Component中)模拟用户控件(UserControl)中FindForm()?
- HDU 1599 find the mincost route (无向图的最小环)
- 简述tcp协议对http性能的影响及优化
- 适用于CSS2的各种运动的javascript运动框架
- 如何导出远程oracle数据库中的表结构
- JavaFX横幅类游戏开发 教训 游戏贴图
- IOS学习之路十四(用TableView做的新闻客户端展示页面)
- Spark架构原理
- Eclipse运行时发生An internal error occurred during:“**************” 的解决办法
- 同时使用 Ant Design of React 中 Mention 和 Form
- JVM:从实际案例聊聊Java应用的GC优化
- RedHat无法ping通Win10的解决办法
- C++中类的多继承
- daterangepicker日历插件使用参数注意问题
- Sencha Touch+PhoneGap打造超级奶爸之喂养记(一) 源码免费提供(转)
- CCF CSP 201703-2 学生排队