码迷,mamicode.com
首页 > 其他好文 > 详细

12 - 函数式编程

时间:2019-02-22 23:38:09      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:扩大   function   问题   调用次数   存在   fun   代码   应该   流程   

Python语言的高级特性

函数是编程(Functional Programming)

  • 基于lambda演算的一种编程方式
    • 程序中只有函数
    • 函数可以作为参数,同样可以作为返回值
    • 纯函数式变成语言:LISP,Haskell
  • Python函数式编程只是借鉴函数式编程的一些特点,可以理解成一般函数式一般Python
  • 需要讲述
    • 高阶函数
    • 返回函数
    • 匿名函数
    • 装饰器
    • 偏函数

      lambda表达式

  • 函数:最大程度复用代码
    • 存在问题:如果函数很小,很短,则会造成啰嗦
    • 如果函数被调用次数少,则会造成浪费
    • 对于阅读者来说,造成阅读流程的被迫中断
  • lambda表达式(匿名函数):
    • 一个表达式,函数体相对简单
    • 不是一个代码块,仅仅是一个表达式
    • 可以有参数,有多个参数也可以,用逗号隔开
# lambda表达式的用法
# 1.以lamnda开头
# 2.紧跟一定的参数(有的话)
# 3.参数后用冒号和表达式主题隔开
# 4.只是一个表达式,所以没有return

# 计算一个数字的100倍数
stm = lambda X: 100 * X
print(stm(89))

stm2 = lambda x,y,z: x + y * 10 + z * 100
print(stm2(4,5,6))

高阶函数

  • 把函数作为参数使用的函数,叫高阶函数
# 函数名称是变量
# 函数名称就是一个变量
# 既然函数名称是变量,则应该可以被当做参数传入另一个函数
‘‘‘
# 高阶函数举例
# funA是普通函数,返回一个传入数字的100倍数字
def funA(n):
    return n * 100
# 再写一个函数,把传入参数乘以300倍,利用高阶函数
def funB(n):
    # 最终是想返回300n
    return funA(n) * 3
print(funB(9))

# 写一个高阶函数
def funC(n,f):
    # 假定函数是把n扩大100倍
    return f(n) * 3
print(funC(9,funA))

12 - 函数式编程

标签:扩大   function   问题   调用次数   存在   fun   代码   应该   流程   

原文地址:https://www.cnblogs.com/rener0424/p/10420886.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!