python的高阶函数和函数即变量
Posted be-your-own-hero
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的高阶函数和函数即变量相关的知识,希望对你有一定的参考价值。
1:高阶函数
#高阶函数 定义:把函数作为参数作为另一个函数的参数 def test(a,b): return a*b def test_1(f,c): return f*c print(test_1(test(1,2),5)) 运行结果: 10
2:函数即变量
def foo(): print("in the foo") bar() def bar(): print("in the bar") foo() 运行结果: in the foo in the bar
def bar(): print("in the bar") def foo(): print("in the foo") bar() foo() 运行结果: in the foo in the bar
def foo(): print("in the foo") bar() foo() def bar(): print("in the bar") 运行结果: NameError:name bar is not defined
分析:
之所以会出现上面的结果,在定义foo函数的时候,在内容地址中把foo函数的函数体存在了内存当中,而foo相当于变量指向了那个内存地址,而在调用foo函数的时候,当执行到bar()函数的时候,bar函数这个变量还没有指向内存中的地址,所以才出现上面这种情况。
另外,一旦内存中的地址没有被变量指向了,就会被python的回收机制不定时的被清理掉,当然自己也可以用del 方向删除内存地址的指向(del只是删除的是内存地址的指向,并没有删除内存地址,内存地址是python的回收机制当存在的内存地址没有被变量指向了就会被清理。
以上是关于python的高阶函数和函数即变量的主要内容,如果未能解决你的问题,请参考以下文章