python自学笔记13_Python自学笔记(13day)

(1)函数的嵌套

(1)首先明白三点:调用函数意思就是:调用函数所得到的结果是什么。     函数没有被调用,则函数里面代码永远不会被执行。   调用函数只有拿到返回值才有结果

deffunc():defsu():print("shuai")

func()#输出:啥都没有因为su()没有被调用

deffunc():defsu():print("shuai")

su()

func()#输出:shaui

none

因位执行到su()打印出shuai就结束了,函数func()没有拿到返回值。

deffunc():defsu():print("shuai")returnshuai

su()

func()#输出:shuai

shuai

因位执行到su()打印出shuai就结束了,函数func()也拿到返回值。

(2)函数的多层嵌套

definner ():

a=1

definner1():

b=2

print(a)print("inner")definner2():print(a)

inner2()

inner()

总结:(1)全局变量不能用局部变量,局部变量看可以用全局变量,但是不可对全局变量中的不可变数据类型进行修改(即对其加减乘除),如果想要修改用gloabl(),它声明的是去全局变量。

(2)同理,内部函数可以用外函数中的变量,但是不可对其修改,如想修改用nonlocal(),它声明的是距离它最近的上一层函数中的局部变量。

definner ():

a=1

definner1():

b=2nonlocal a #声名a

a+=1

print(a)print("inner")definner2():print(a)

inner2()

inner()

(3)函数的本质

函数之所以能被调用,比如func()就可以调用函数,是因为:func()=func+()=函数名地址+()=调用

(1)函数名字是可以被赋值的

(2)函数名字可以作为容器类型的元素

(3)函数名字可以作为函数的参数

(4)函数名字可以作为函数的返回值

举列子针对(4)

deffunc():print(123)defwawa(f):

f()returnf

xing=wawa(func)

xing()#输出:123

123

函数的闭包

(1)闭包:嵌套函数,且内部函数调用了外部函数的变量

defouter():

a=1

definner():print(a)print(inner.__closure__) #inner.__closure__:用来打印看函数是否为闭包函数

outer()

(2)闭包函数的调用

一般来说我们调用闭包函数,是直接调用闭包函数,而不必通过调用总的函数。

defouter():

a=1

definner():print(a)returninner

inn=outer()

inn()#通过方返回闭包函数的函数名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值