码迷,mamicode.com
首页 > 编程语言 > 详细

python的高阶函数和函数即变量

时间:2019-08-03 23:26:29      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:nbsp   而在   ret   bar   ror   def   turn   地址   方向   

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的高阶函数和函数即变量

标签:nbsp   而在   ret   bar   ror   def   turn   地址   方向   

原文地址:https://www.cnblogs.com/Be-your-own-hero/p/11296673.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!