python学习第十天
一.函数的参数
1.默认形参和关键字实参区别
默认形参在函数的定义处使用
关键字实参在函数的调用处使用
2.收集参数
(1)普通收集参数:
在参数的前面加上一个 * ,代表的是普通收集参数.
作用:收集多余的没人要的普通实参,构成一个元组
def func(*args):
pass
args => arguments(参数)
(2)关键字收集参数
在参数的前面加上两个**,代表的是关键字收集参数
作用:收集多余的没人要的关键字实参,构成一个字典
def func(**kwargs):
kwargs => keyword arguments
3.命名关键字参数
两种形式
(1)在*号后面定义的参数是命名关键字参数如: def func(a,b,*,c) c是命名关键字参数
(2)在普通收集参数和关键字收集参数之间的,是命名关键字参数
如: def func(*args,参数,**kwargs)
如果是命名关键字参数,必须使用关键字实参的形式调用
4.关于*和**的使用方法
在函数的定义处,*和**用来接收数据,*把数据打包成一个元组,**把数据打包成一个字典
在函数的调用处,*和**用来解包数据,*一般应用于列表或元组,**一般用于字典
定义处的*号用法和调用处的*号用法是一对相反操作
一个是用来打包,一个是用来解包
优点:控制了参数的个数
5.形参声明的位置顺序
普通形参 -> 默认形参 -> 普通收集参数 -> 命名关键字参数 -> 关键字收集参数
6.return(自定义返回值)
函数可以自定义返回值,通过return,return会把这个值返回到函数的调用处
(1)return+返回值,后面除了可以接六大标准数据类型之外,还可以返回函数和类对象,如果没有定义任何返回值,默认返回的是None
(2)在函数中,如果执行了return,意味着立刻终止函数,后面的代码通通不执行
7.函数名的使用
python中的函数可以像变量一样,动态创建,销毁,当做参数传递,作为返回值,叫做第一类对象,其他语言不能比拟,功能有限
(1)函数名是个特殊的变量,可以当做变量赋值
(2)函数名可以作为容器类型数据的元素
(3)函数名可以作为函数的参数
(4)函数名可以作为函数的返回值
8.doc
__doc__或者help查看文档
函数.__doc__ 可以获取函数的帮助文档
二.全局变量和局部变量
1.定义
局部变量:在函数内部定义的变量就是局部变量(局部命名空间)
全局变量:在函数外面定义的变量或者在函数内部用global关键字定义的是全局变量(全局命名空间)
2.作用域:作用的范围
局部变量的作用范围仅仅限定在函数的内部
全局变量的作用范围横跨整个文件
3.生命周期
内置命名空间 > 全局命空间 > 局部命名空间
内置变量 > 全局变量 > 局部变量
4.global
总结:
如果函数外部有这个全局变量,在函数内部使用global关键字,可以修改全局变量
如果函数外部没有这个全局变量,在函数内部使用global关键字,可以定义全局变量
在函数内部可以直接获取全局变量
但是无法直接修改全局变量,需要通过global