本文共 505 字,大约阅读时间需要 1 分钟。
内嵌函数
def fun1(): print("fun1正在被调用...") def fun2(): print("fun2正在被调用..") fun2()#在fun1()调用fun2()fun1()
闭包
def fun1(): x=5 def fun2(): nonlocal x#不是本地(局部)变量 x *= x print(x) return fun2()fun1()
测试题:
0、global1、nonlocal
2、inside函数是作用在outside里,不可以直接调用出来。
答:代码B的inside函数,因为没有定义局部变量var就直接打印,导致找不到变量,报错。 之前没用nonlocal时,var是一个局部变量,没有先定义再打印就会报错,但是用了之后,就不是局部变量了,就是一个inside的全局变量,所以顺序就会没有关系。def funout(): def funIn(): print("你成功调出funIn") return funIn()funout()
转载地址:http://urshn.baihongyu.com/