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的高阶函数和函数即变量的主要内容,如果未能解决你的问题,请参考以下文章

python-高阶函数

Python 高阶函数

python 高阶函数

python笔记18-高阶函数

高阶函数和装饰器

python 高阶函数都有哪些