闭包函数

37 篇文章 0 订阅
30 篇文章 0 订阅

1.函数嵌套

一个函数包含另一个函数

 

嵌套调用

在函数执行中调用另一个函数

def max(a,b):

if a> b:

return a

return b

 

def max2(a,b,c):

tmp=max(a,b)

tmp2=max(tmp,c)

return tmp2

 

print(max2(1,2,3))

 

嵌套定义

在函数体中定义另一个函数

def func1():

print("1 run")

def func2():

print("2 run")

func2()

func1()

需要注意内部定义的函数只能在内部使用

 

名称空间

存储名字和内存地址捆绑关系的内存区域

内置名称空间 存解释器自带名称,解释器启动后生效

全局名称空间 顶头写的没有缩进的 就在全局名称空间 在所有位置都能访问

注意 在if中 if是顶头写的 if里的名字也是全局 while for一样

if 1==1:

age =1

print(age)

局部名称空间 函数内定义的名字 只在调用时生效 函数调用结束而失效

def func1():

a=100

print(a)

func1()

print(a)

名称的查找顺序:局部>全局>内部

名称的加载顺序:内部,全局,局部

作用域:

作用区域,作用范围,名称的作用范围

 

globa 但需要在函数中修改全局名字时 需要使用

a=100

def fun():

global a

a=1

fun()

print(a)

nonlocal 函数嵌套定义中更改外层名称

def aq():

a=1

def f2():

nonlocal a

a=2

f2()

print(a)

aq()

 

a=False

def login(c,d):

global a

if c == "apple" and d =="123":

print("success")

a=True

login("apple","123")

print(a)

 

函数不加括号时可以被当作参数 元素 加上括号是调用

def f3():

def inner():

print("inner")

return inner

res=f3()

print(res)

res()

 

闭包函数

一个函数将另一个函数关闭在内部

函数对象可以将一个函数作为返回值 使内部函数也可以被外部使用

需要注意名字所在的作用域在函数定义时已被固定 与位置无关

特点:1.该函数时定义在另一个函数中的

2.该函数包含了外层函数的名字引用

def outer():

name="apple"

def inner():

a=100

print("inner",a)

print("inner",name)

return inner

res=outer()

res()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值