一 函数式编程

  1. 不修改外部状态。
  2. 模仿数学里得函数进行编程。
  3. 用函数编程写出得代码相当精简。
  4. 可读性比较差。

例子:

y=2*x+1

x=1
def test(x):
	return 2*x+1
test(x)

一 匿名函数

  • 匿名函数就是不需要显式的指定函数。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lamba表达式中封装有限的逻辑进去。

注:匿名函数引用计数为0,lambda经常和内置函数一起使用

  lambda/filter/map/reduce这些都是函数式编程的风格。

语法:
lambda函数的语法只包含一个语句,如下:

lambda [arg1 [,arg2,.....argn]]:expression

 

先来个简单得:

#这段代码
def calc(n):
    return n**n
print(calc(10))

#换成匿名函数
calc = lambda n:n**n
print(calc(10))

 换个高级点得:

salaries={
    'egon':3000,
    'alex':100000000,
    'wupeiqi':10000,
    'yuanhao':250
}

def get_value(k):
    return salaries[k]

#换成匿名函数:
lambda k:salaries[k]
f=lambda k:salaries[k] #匿名函数也可以赋值一个名字,但是这便违反了匿名的初衷
print(f)
print(f('egon'))

print(max(salaries))
print(max(salaries,key=get_value))
print(max(salaries,key=lambda k:salaries[k]))
print(min(salaries,key=lambda k:salaries[k]))

二 内置函数

 python基础之函数式编程、匿名函数、内置函数

官方文档,内置参数详解:

https://docs.python.org/3/library/functions.html?highlight=built#ascii

数据类型内置函数,又称为工厂函数。

 

函数是个具体的对象,谁来调用都可以用。方法需要绑定到具体对象。

l1=[]
l1.append('aaaa')

def test(x,item):
     x.append(item)
test(b,'bbbbb')
函数例子

相关文章: