9. 函数和匿名函数(一)
目录
1. 函数式编程范式
2. 函数基础
3. 默认参数(Default Argument Values)
4. 关键字参数(Keyword Arguments)
5. 可变参数(Variadic Arguments)
5.1 位置可变参数
5.2 关键字可变参数(Keyword Variadic Arguments)
5.3 通用参数
5.4 星号(*)的含义
6. 仅关键字参数(Keyword-Only Parameters)
7. 仅位置参数(Positional-Only Parameters)
位置参数VS关键字参数
1. 函数式编程范式
Python在函数中提供了惊人多样性,函数是第一等公民,因此它和其他对象没有任何区别。Python为函数式编程提供完全支持,也包含了lambda以及匿名函数这些概念。
首先了解下什么是函数式编程。
我们可能都使用过过程式编程或者面向对象编程。这两种编程范式都是命令式,即通过具体过程描述如何实现目标。
过程式编程围绕控制块比如if else ,while,for等进行组织代码,重点关注控制流。
面向对象编程范式围绕类和对象进行组织,重点关注状态,特别是这些对象的属性。
函数式编程式中,需要为每个步骤编写一个函数,每个函数接收一个输入并产生一个输出,并且只做一件事,不关心程序其余部分。而且函数式没有状态的,它们是不会存储任何信息。每次调用相同输入,函数都会生成相同输出。
函数式编程范式是围绕纯函数进行组织的。纯函数就是没有副作用且只做一件事。
在函数式编程中有几个非常重要的点或者规则:
1. 每个函数都应该只做一件事。
2. 一个函数的实现方式不应该影响程序其他部分的行为。
3. 要避免副作用!
4. 函数是无状态的,也不受外部状态影响,即相