python 闭包
什么是闭包
#!/usr/bin/env python
#-*- coding:utf-8 -*-
# BY:wenchao.li time: 2020/7/8
# 闭包,是在函数中提出的概念。
def func():
a=100
def func1():
b=200
print (a,b)
# return a
#注意,下面不能加括号,加括号相当于调用了
return func1
#外部调用func1 是没办法调用的,直接执行会报错,
# 也无法在这里调用a,因为a是全局变量,我们可以return a ,然后再外面有一个容器来接住a
#同理,我们也可以吧 func1扔出来,这时候,x就是里面的内部函数
x=func()
print (x)
#这时候执行x()就相当于执行func1了
x()
#像这种格式的,就叫闭包
#条件1:外部函数定义内部函数 条件2:外部函数是有返回值的, 条件3:return返回的值是内部函数名 条件4:内部函数引用了外部函数的变量。符合这样条件的叫闭包
示例
def func(a,b):
c=100
def func1():
s=a+b+c
print ('sum is :',s)
return func1
x=func(200,200)
print (x)
x()
示例
def func():
a=100
def func1():
b=90
s=a+b
print (s)
def func2():
func1()
print ('>>>>>>>>>>func2',a)
return 'hello'
return func2
x=func()
print (x)
xx=x()
print (xx)
示例
#!/usr/bin/env python
#-*- coding:utf-8 -*-
# BY:wenchao.li time: 2020/7/9
def counter():
count=[0]
def sumcounter():
count[0]=count[0]+1
print ('当前是第{}次访问' .format(count))
return sumcounter
x=counter()
x()
x()
x()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2022-07-13 mysql 重置root密码
2022-07-13 mysql 慢查询