python基础-函数式编程

2021-03-14 10:32

阅读:398

标签:lex   class   col   def   python   oba   mic   mamicode   返回值   

编程的方法论:

1.面向过程

2.函数式:用数学意义的函数+编程语言定义的函数

3.面向对象

 

函数式编程的特点:

1.不可变数据,在函数内不使用global等关键字,避免修改数据。

2.第一轮对象,函数即变量,就是少定义或不定义变量名,直接把函数作为变量来传值,传参数。如:

#其它编程方法
def add(x):
    x=x+1
    return x 
# 函数式编程
def add1(x):
    return x+1 #返回的就是一个函数
#其它编程方法
def add(x):
    x=x+1
    return x
res=add(10)
print(res) #其它编程方法定义了中间变量
# 函数式编程
def add1(x):
    return x+1 #返回的就是一个函数。return可返回任意类型
print(add1(10)) #函数式编程不定义中间变量,一步到位
def foo(n):
    print(n)
def bar(name):
    print(my name is %s%name)
foo(bar("alex")) #bar(‘alex‘)无返回值,返回值为None

技术图片

def foo(n):
    print(n)
def bar(name):
    print(my name is %s%name)
    return foo
bar(alex)(5)

技术图片

3.尾调用-在函数的最后一步调用另外一个函数(最后一行不一定是最后一步)

递归函数,会不断保存每一层的信息,容易内存撑爆,使用尾调用,最后一步调用另一个函数,就可以避免这个问题。是吗?

 

python基础-函数式编程

标签:lex   class   col   def   python   oba   mic   mamicode   返回值   

原文地址:https://www.cnblogs.com/liaoyifu/p/14029358.html


评论


亲,登录后才可以留言!