Python 函数相关(一)
目录
警告
本文最后更新于 2022-06-24,文中内容可能已过时。
1. 函数参数释义
- 必选参数
函数定义时,定义了接收变量,那么在函数调用时就必须传递该参数值 - 默认参数
在函数定义时,可为需要接受值的参数设置一个默认值,若函数调用时,该参数未传入值时,则使用默认值 - 可变参数
*args
(关键字参数) : 可向函数中传递0个或多个参数(类似String…args),内部变量若为*args
,结果将为元组,独立值将会顺序接收**kwargs
(命名关键字参数) : 可向函数中以键值对的形式传递0个或多个参数,内部变量若为**kwargs
,结果将为字典,独立值将会顺序接收
- 组合参数
用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数可组合使用,但参数传递顺序必须是: 必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
2. 函数即"变量"
3. 高阶函数
一个变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数
4. 嵌套函数
一个函数中可以包含另一个函数
5. 装饰器
- 示例代码1:
|
|
- 示例代码2:
|
|
6. 生成器
在python
中, 一边循环,一边计算的机制,就叫做生成器.
生成器不会第一时间将所有结果生成出来,他只会在循环到(调用)的时候才会生成需要的值,因此对于生成器产生的值是不允许切片的,另外,他每次调用也仅仅只保留当前正在被调用的这个值
生成器定义, 对于列表生成式将[]
替换为 ()
,创建出来的结果就是一个生成器 ,对于函数,包含了yelid
变量(可用于模拟多线程)的就是一个生成器.
6.1. 生成器创建
示例1:
|
|
示例2:
|
|
6.2. 生成器调用
生成器的调用, 在2.7中使用的是 next(arr)
, 3.x中使用的是arr.__next__()
,不过next(arr)
在3.x同样也可以使用
6.3. 生成器模拟多线程运行示例(协程)
|
|
7. 构造函数和析构函数
|
|
8. 私有属性和私有方法
在Python
类中以__
开头的变量为私有变量(属性),以__
开头的函数为私有函数(方法),他们在类的外部不可查,不可被调用
|
|
9. 迭代(Iterable)
从某个地方(比如一个列表)取出一个元素的过程。当我们使用一个循环来遍历某个东西时,这个过程本身就叫迭代
- 判断对象是否可迭代(对象):
|
|
10. 迭代器(Iterator)
可以被next()函数调用并不断返回下一个值的对象被成为迭代器
生成器一定是一个迭代器,但迭代器不一定是一个生成器(生成器可能是一个列表或其他不能被next()
的可迭代对象,)
- 判断对象是否是一个迭代器(对象):
|
|
11. 内置函数
详见官方文档 : https://docs.python.org/zh-cn/3.7/library/functions.html
Map,Filter 和 Reduce https://eastlakeside.gitbooks.io/interpy-zh/content/Map_n_Filter/
|
|