昨日内容回顾
-
硬盘操作数据的原理
数据在计算机硬盘上保存时是一次性的,数据保存后即不可能再对这段数据内部进行修改。计算机数据的删除实质是对保存数据部分硬盘状态的修改,由占有态转换为自由态,原本的数据被覆盖之前保持存在。
-
修改数据的两种方式
覆盖写 原地覆盖写入新数据
替换写 在另一块空间写入数据,删除原文件,将新文件重命名为原文件名字
-
函数的基本构成
def 定义函数的关键字
函数名 相当于变量名,调用函数时使用函数名加括号
参数 参数可有可无,但定义与调用时须同一,定义时有则调用时也要传参数
函数注释 说明函数的主要功能或使用方法
函数体代码 函数的核心部分,完成函数功能的主体
return 函数的返回值,函数执行后返回的结果。不规定返回值时返回值默认为None,范围值为单个数据值 时,返回值为多个数据值时,将多个数据组织成元组返回。
-
函数的分类
空函数 无实际功能,仅在搭建架构时提示功能,函数体代码用pass或'...'充数。
无参函数 调用时不需要传参数的函数。
有参函数 调用时需要传参数的函数。
-
函数的定义与调用
函数必须先定义后调用;
函数定义阶段仅检测语法结构,并不执行函数体代码;
定义时有几个形式参数,调用时就需要传几个实际参数。
-
位置参数与实际参数
位置参数相当于变量名,尽量做到见名知义,方便调用者传参;
实际参数相当于数据值,在函数运行时与位置参数临时绑定,函数运行结束后解除绑定。
今日内容概要
- 位置参数
- 默认参数
- 可变长参数
- 名称空间
- 名称的查找顺序
今日内容详细
位置参数
函数传参数的基本原则
简单的、短的传参文本在前,复杂的、长的传参文本在后。
位置形参与位置实参
位置形参与位置实参的数量必须保持一致,不一致时会报错。
可以使用关键字传参,但关键字传参文本必须在位置传参后,且同一个形参不可以多次传参。
默认参数
默认参数即在函数定义阶段就有一个默认值的参数,这种参数适用于大多数的调用场景,因此在调用时可以不需要传参数,如果需要传参数,可以根据位置传参数,也可以使用关键字传参。
可变长参数
可变长形参 *args **kwags
*args 用来接收传参时多余的传参,并将多余的实参组织成元组赋值给星号后的变量名。
**kwags 用来接收传参时多余的关键字传参,并将多余的传参以关键字为键、以实参为值组织成字典赋值给双 星号后的变量名。
可变长实参
-
'*'+字符串/列表/元组/集合/字典
将星号后的数据用for循环取出后,依次按照位置赋值给形参。
集合为无序数据,因此取出的数据顺序是随机的。
字典for循环的对象是键,因此取出的数据仅为对应的键,键的相对位置不变。
-
'**'+字典
将字典中的数据打散取出后,将字典的值为数据值按照位置进行关键字传参。
名称空间
名称空间是内存中用来存储变量名与数据的绑定关系的空间。函数名与函数体的关系类似与变量名与数据值。
名称空间的分类
内置名称空间 储存解释器运行时自动产生的名称与其代码的绑定关系。
全局名称空间 储存文件级别名称与其数据的绑定关系。文件级别名称区别于局部名称空间内的名称。
局部名称空间 储存函数体代码或类代码产生的绑定关系。
名称空间的存活周期及作用范围
内置名称空间 解释器运行时产生,解释器关闭时销毁,解释器内部任何位置均可以调用。
全局名称空间 程序文件打开时产生,文件关闭时销毁,文件内部任何位置均可以调用。
局部名称空间 函数运行时产生,函数运行结束后销毁,一般只能在函数体内部调用。
名称的查找顺序
名称的查找顺序取决于调用变量的操作所在的层级。默认情况下,优先在调用位置同一层级查找,若当前层级查找不到,则去上一层级查找。层级的从上到下的关系如下:
内置名称空间>>>全局名称空间>>>局部名称空间>>>局部名称空间下产生的子空间
相互独立的局部名称空间默认不可以互相访问。
python程序代码默认从上往下读取,在同一层级名称空间内必须要先定义才能调用。即时在上一层级中有对应的名称,本层级下方若有同一名称出现,在当前位置调用时依然会报错。
标签:传参,调用,函数,知识,参数,名称,空间 From: https://www.cnblogs.com/akazukis/p/16776806.html