>[success] # 函数做参数使用 ~~~ 1.函数可以作为参数使用,思路类似js 的回调函数 2.函数可以内部嵌套函数使用 ~~~ >[success] # 函数作为参数使用的案例 ~~~ 1.当我们调用函数的时候,都是在函数名后加上括号才可以执行这个函数, 在python和js甚至更多的语言中,如果函数不加括号,那么他的调用相当于是 内存地址,也可以理解成参数。 2.可以将一个函数中在嵌套一个函数,然外层函数的返回值是内层函数,这样 就可以调用外部函数是,实际调用的是内部函数,从而避免了循环和代 码的 堆叠重复。 ~~~ >[danger] ##### 函数使用不加括号 ~~~ def func(): print("这是一个函数") print(func) 打印结果: <function func at 0x0000002B331E76A8> ~~~ >[danger] ##### 函数做为参数赋值使用 ~~~ def func(): print("这是一个函数") a = func a() 打印结果: 这是一个函数 ~~~ >[danger] #####函数作为函数的参数使用 ~~~ def func(arg1): print("这是一个函数%s"%(arg1)) def fun1(func,arg1): func(arg1) fun1(func,"测试") 打印结果: 这是一个函数测试 ~~~ >[danger] ##### js 的回调思想 ~~~ def mysort(lis,callback): currentLis = [] for i in lis: if (callback(i)): currentLis.append(i) return currentLis def callback(item): return item > 5 lis = [1, 2, 9, 10] myList = mysort(lis,callback) print(myList) 打印结果: [9, 10] ~~~ >[danger] ##### 放到数组中 ~~~ def f1(): print("我是马化腾") def f2(): print("我是马云") def f3(): print("我是马赛克") def f4(): print("我是马蔚华") lst = [f1(), f2(), f3(), f4()] lst1 = [f1, f2, f3, f4] print(lst) print(lst1) 打印结果: 我是马化腾 我是马云 我是马赛克 我是马蔚华 [None, None, None, None] [<function f1 at 0x00000060424076A8>, <function f2 at 0x0000006042407730>, <function f3 at 0x0000006042407840>, <function f4 at 0x00000060424078C8>] ~~~ >[danger] ##### 内部函数 ~~~ def func(): def inner(): print("火锅不让吃了. 吃了上火") return inner ret = func() # 这里func()执行之后获取到的是inner函数 ret() # 这里是让inner函数执行 打印结果: 火锅不让吃了. 吃了上火 ~~~