首页 > 其他 > 详细

函数式编程以及内置函数--函数作用域

时间:2020-04-20 13:07:05      阅读:65      评论:0      收藏:0      [点我收藏+]
name="alex"
def foo():
    name="lhf"
    def bar():
        print(name)     
    bar()
foo()              #执行结果使lhf,因为在寻找变量的时候,先在自己这里找,找不到就去上一级别找 

name="alex"
def foo():
name="lhf"
def bar():
print(name)
return bar
print(foo()) #输出结果为一个内存地址,因为上面的返回值返回的是bar,返回一个函数名代表他的地址。但是注意这里没有运行foo,只是打印了返回值。


例题:
def test1():
print("i am in test1")
def test():
print("i am in test")
return test1
res=test() #执行test(),然后将返回值test1赋予res,这里返回的是test1的内存地址
print(res()) #执行test1的内存地址对应的函数,然后返回值打印,注意test1没有返回值,所以默认返回的是NOne
#输出结果为 i am in test
# i am in test1
# None

name="alex"
def foo():
name="lhf"
def bar():
print(name)
return bar
res=foo() #返回的是一个内存地址
print(res)
res() #内存地址+()代表执行这个函数


看懂这个例题的输出结果就可以
name="alex"
def foo():
name="lhf"
def bar():
name="wupeiqi"
def tt():
print(name)
return tt
return bar
abc=foo()
print(abc)
b=abc()
b()
foo()()()    #这么写也行


  

函数式编程以及内置函数--函数作用域

原文:https://www.cnblogs.com/yxzymz/p/12736853.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!