您的位置:首页 > 娱乐 > 八卦 > 宿州网站建设_惇王爷_北京网站推广排名_网站怎样优化seo

宿州网站建设_惇王爷_北京网站推广排名_网站怎样优化seo

2025/3/12 11:30:19 来源:https://blog.csdn.net/xiaoyang01234/article/details/146164381  浏览:    关键词:宿州网站建设_惇王爷_北京网站推广排名_网站怎样优化seo
宿州网站建设_惇王爷_北京网站推广排名_网站怎样优化seo

函数式编程

函数式编程(funcitonal programming)其实是个很古老的概念。

高阶函数和内存分析

函数式一阶公民

  1. 函数式编程最鲜明的特点就是:函数式一等公民,指的是函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值。
  2. 一个函数可以接受另一个函数作为参数,这种函数就称之为高阶函数
  3. python内建的高阶函数有map、reduce、filter、sorted
def test():print("test function run!!!")a = test
a()

当执行第一句话的时候,就给test变量分配了一个地址,然后在执行a=test的时候,会将test指向的地址分配给a,在执行a()就会去调用函数

def test():print("test function run!!!")def test2(func):print("test2 funciton run!!!")func()a = test
test2(a)

def test():print("test function run!!!")def test3(a, b):print(f"test3,{a},{b}")def test2(func, *args, **kwargs):print("test2 funciton run!!!")print(f"*args:{args}")func(*args, **kwargs)a = test
test2(a)
test2(test3, 100, 200)

偏函数

python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样。

偏函数:作用就是把一个函数某些参数固定住(也就是设置默认值),返回一个新的函数,调用这个新的函数会更简单

举例如下:

int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换,代码如下:

print(int('12345'))
def int2(x, base=2):return int(x, base)print(int2('10000'))
print(int2('1010101'))

闭包closure

根据字面意思,可以形象地把闭包理解为一个封闭的包裹,这个包裹就是一个函数。当然,当然,还有函数内部对应的逻辑,包裹里面的东西就是自由变量(外部函数的局部变量),自由变量可以随着包裹到处游荡。

  • 局部变量:如果名称绑定在一个代码块中,则为该代码块的局部变量,除非声明为nonlocal或global
  • 全局变量:如果模块绑定在模块层级,则为全局变量
  • 自由变量:如果变量在一个代码块中被使用但不是在其中定义,则为自由变量。

闭包概念和第一个闭包程序

我们知道,函数作用域是独立的,封闭的,外部的执行环境是访问不了的,但是闭包具有这个能力和权限。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com