概述
函数是Python的头等对象
我们可以把函数分配给变量、存储在数据结构中、作为参数传递给其他函数,甚至作为其他函数的返回值等。
函数是对象
Python程序中所有的数据都是由对象或者对象之间的关系来表示的。
字符串、列表、模块等都是对象,函数也不例外。
函数对象及其名称是相互独立的实体。
Python在创建函数时为每一个函数附加一个用于调试的字符串标识符,使用“__name__”属性可以访问这个内部标识符。
虽然函数的“__name__”是yell,但是已经无法使用这个名称在代码中访问函数对象了,名称标识符仅仅用来辅助调试,指向函数的变量和函数本身实际上是彼此独立的。
函数可存储在数据结构中
由于函数是头等对象,因此可以像其他对象一样存储在数据结构中。
访问存储在列表中函数对象与访问其他类型的对象是一样的。
函数可传递给其他函数
由于函数是对象,因此可以将其作为参数传递给其他函数。
将函数对象作为参数传递给其他函数的功能非常强大,可以用来将程序中的行为抽象出来并传递出去。能接受其他函数作为参数的函数被称为“高阶函数”。Python中具有代表性的高阶函数是内置的map函数,map接受一个函数对象和一个可迭代的对象,然后在可迭代对象中的每一个元素上调用该函数来生成结果。
函数可以嵌套
Python允许函数中定义函数,这种称之为“嵌套函数”或“内部函数”。
如果要在外部访问嵌套的内部函数,需要将内部函数返回给父函数的调用者。
函数可捕捉局部状态
内部函数不仅可以从父函数返回,还可以捕获并携带父函数的某些状态。
内部函数没有text参数,但是仍可以访问在父函数中定义的text参数,这种行为就称之为“词法闭包”(lexical colsure),简称闭包。闭包在程序流不在闭包范围内的情况下,也能记住封闭作用域(enclosing scope)中的值。
实际上,这就意味着函数不仅可以返回行为,还可以预先配置这些行为。
对象也可作为函数使用
Python中所有的函数都是对象,反之则不成立,有些对象不是函数,但是也可以调用,因此在许多情况下可以将其当成函数来看待。
如果一个对象是可调用的,说明它可以使用圆括号函数调用的语法,甚至可以传入参数,这些都靠“__call__”方法完成。
一个对象是否可以调用,Python内置了callable函数。
最后
以上就是坚强柜子为你收集整理的【学习笔记】34、函数是Python的头等对象的全部内容,希望文章能够帮你解决【学习笔记】34、函数是Python的头等对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复