python学习day11

python学习day11

函数对象

a=1
print(a)
print(id(a))
print(type(a))

函数的嵌套

没人用,没必要

def f2():print('from f2')
def f1():return f2
print(f2)
print(f2())
f2()
f1()
print(f1())

名称空间和作用域

执行顺序:内置名称空间-->全局名称空间-->局部名称空间
查找顺序:从当前名称空间开始查找,然后逐步往上

x=1
def f1():x=2x=3print(x)
x=4
print(x)
f1()

作用域

全局作用域:适用于全局+局部
局部作用域:只适用于局部

def f1():def f2():print('f2works')f2()return f2
f1()
print(f1())
f2()

global:局部-->全局

def f1():global f2def f2():print('f2works')f2()return f2
f1()
print(f1())
f2()

nonlocal:局部-->外部

x=1
def f1():x=5def f2():nonlocal xx=2x=3print(x)f2()print(x)
x=4
print(x)
f1()x=1
def f1():x=5def f2():x=2x=3print(x)f2()print(x)
x=4
print(x)
f1()