1.匿名函数能够完成基本的简单功能,传递的是这个函数的引用,只有功能;
2.普通函数能够完成较为复杂的功能,传递的是这个函数的引用,只有功能;
3.闭包能过够实现较为复杂的功能,传递的是这个闭包中的函数以及数据,因此传递的是功能+数据;
4.对象能够实现最为复杂的功能,传递的是很多数据+很多功能,因此传递的是功能+数据
修改闭包外面的函数
x = 300
def test1():
x = 200
def text2():
# nonlocal x # 修改闭包外面函数的变量 x = 200
# global x # 全局变量进行修改 x = 300
# 不写,1无法执行
print('-----1------x = %d' % x)
x = 100
print('-----2------x = %d' % x)
return text2
t1 = test1()
t1()