Python函数对象与闭包
2023-12-14 11:36:56
一 函数对象
函数对象指的是函数可以被当做’数据’来处理,具体可以分为四个方面的使用
玩法1:
函数可以被引用
def outer(a,b):
return a+b
info=outer
print(info(5,9))
玩法2:
函数可以作为容器类型的元素
def outer():
print("有容乃大")
dic={"a":5,"b":6}
dic["c"]=outer
print(dic) #{'a': 5, 'b': 6, 'c': <function outer at 0x000002C348F03EB0>}
玩法3:
函数可以作为参数传入另外一个函数
def func():
print("开心")
def outer(a):
print(a)
a()
print(outer(func))
# <function func at 0x00000185FB213EB0>
# 开心
# None
?玩法4:
函数的返回值可以是一个函数
def index():
print("index")
return "index2"
def func():
print("func")
return index
res=func()()
print(res)
# func
# index
# index2
闭包函数
闭与包
# 闭包函数还是函数,它是有函数一点一点演变过来的
什么是闭包函数?
?? ?闭:就是函数内部定义函数,至少要有2层函数
? ? 包:内部的函数要使用外部函数名称空间中的名字
def outer():
a=1
def inner():
print(a)
inner()
outer()
# 闭包函数的使用场景:
闭包函数其实是第二种传参方式!
第一种
def my_max(a, b):
if a>b:
return a
return b
info=my_max(1, 2)
print(info)
第二种
让你用闭包函数实现比较2个数的大小:一次传值,多次使用
def outer(a,b):
def my_max():
if a>b:
return a
return b
return my_max
res=outer(10,50)
print(res())
文章来源:https://blog.csdn.net/weixin_41774149/article/details/132738340
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!