美文网首页
python 函数表达式

python 函数表达式

作者: lvyz0207 | 来源:发表于2019-11-03 18:57 被阅读0次

python 函数

多态

Python 不用考虑输入的数据类型,而是将其交给具体的代码去判断执行,
同样的一个函数(比如这边的相加函数 my_sum()),
可以同时应用在整型、列表、字符串等等的操作中。

函数嵌套的作用

1、保证内部函数的隐私
2、提高程序的运行效率
常用情况(检查输入是否合法)

# 数据库连接
def connect_DB():
    def get_DB_configuration():
        ...
        return host, username, password
    conn = connector.connect(get_DB_configuration())
    return conn

# 参数校验
def factorial(input):
    # validation check
    if not isinstance(input, int):
        raise Exception('input must be an integer.')
    if input < 0:
        raise Exception('input must be greater or equal to 0' )

    def inner_factorial(input):
        if input <= 1:
            return 1
        return input * inner_factorial(input-1)
    return inner_factorial(input)
print(factorial(5))

函数变量作用域

nonlocal --->修改全局变量参数
global---->声明 函数内部的变量,就是之前定义的全局变量

闭包

闭包和嵌套函数类似,
不同的是,这里外部函数返回的是一个函数,而不是一个具体的值。
返回的函数通常赋于一个变量,这个变量可以在后面被继续执行调用。
使用闭包的一个原因,是让程序变得更简洁易读

闭包常常和装饰器(decorator)一起使用。

def nth_power(exponent):
    def exponent_of(base):
        return base ** exponent
    return exponent_of # 返回值是exponent_of函数

square = nth_power(2) # 计算一个数的平方
cube = nth_power(3) # 计算一个数的立方 

print(square(2))  # 计算2的平方
print(cube(2)) # 计算2的立方
# 输出
4 # 2^2
8 # 2^3

匿名函数

lambda 表达式
lambda argument1, argument2,... argumentN : expression

第一,lambda 是一个表达式(expression),并不是一个语句(statement)。
第二,lambda 的主体是只有一行的简单表达式,并不能扩展成一个多行的代码块
减少代码的重复性;
模块化代码。

python 函数式编程

map()、filter() 和 reduce()通常结合匿名函数 lambda 一起使用。

map(function, iterable) 函数,对 iterable 中的每个元素,都运用 function 这个函数,最后返回一个新的可遍历的集合。

l = [1, 2, 3, 4, 5]
new_list = map(lambda x: x * 2, l) # [2, 4, 6, 8, 10]

filter(function, iterable) 函数,
它和 map 函数类似,function 同样表示一个函数对象。
filter() 函数表示对 iterable 中的每个元素,都使用 function 判断,
并返回 True 或者 False,最后将返回 True 的元素组成一个新的可遍历的集合

l = [1, 2, 3, 4, 5]
new_list = filter(lambda x: x % 2 == 0, l) # [2, 4]

reduce(function, iterable) 函数,它通常用来对一个集合做一些累积操作。

from functools import reduce
l = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, l) # 1*2*3*4*5 = 120

例题:

根据值进行由高到底的排序
d = {'mike': 10, 'lucy': 2, 'ben': 30}
anwser:
sorted(d.items(), key=lambda x: x[1], reverse=True)

相关文章

  • Python之lambda表达式

    ---Python之lambda表达式(创建匿名函数) Python允许使用lambda关键字来创建匿名函数。 先...

  • 让你更 Pythonic 的函数

    Pythonic:意思就是python代码很python lambda 表达式匿名函数(英语:anonymous ...

  • Python 函数式编程

    Python 提供 3 种内建函数和 lambda 表达式等来支持函数式编程。 匿名函数 Python 允许用 l...

  • [转]python正则表达式(一) 函数使用

    原文:python | 史上最全的正则表达式 更全的正则表达式处理函数:在python中使用正则表达式(一) 0....

  • Day8-课堂笔记-函数

    1.函数的返回值 函数调用: 2.return关键字 3.函数调用表达式:python中每个函数调用表达式都是有值...

  • python基础--匿名函数&高阶函数

    lambda表达式返回匿名函数 python使用lambda创建匿名函数,lambda的主题是一个表达式而不是代码...

  • 【10.25】Python语法练习5/17

    学习任务:函数与 Lambda 表达式 一、函数Python中,定义函数要使用def语句,依次写出函数名、括号、括...

  • Python lambda函数

    lambda函数 在Python中,lambda函数是使用lambda表达式定义的单行匿名函数。它常用于将函数作为...

  • 05.最后任务---生成照片墙

    学习一个知识python匿名函数(lambda表达式) 参见python基础教程 了解一个函数point 准备 1...

  • lambda匿名函数

    匿名函数 python 使用 lambda 来创建匿名函数。 lambda只是一个表达式,函数体比def简单很多。...

网友评论

      本文标题:python 函数表达式

      本文链接:https://www.haomeiwen.com/subject/judlbctx.html