学习笔记18函数的其他功能
Posted SAP剑客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记18函数的其他功能相关的知识,希望对你有一定的参考价值。
函数的其他功能
一、调用函数时参数的顺序
1、位置参数和关键字参数
注意,混合使用的时候,位置参数不能在关键字参数的后面,否则会报错。
定义时,小括号中的参数,用来接收参数用的,称之为“形参”;
调用时,小括号中的参数,用来传递给函数的,称之为“实参”;
2、参数的默认值
调用函数时,默认参数的值如果没有传入,则被认为是默认值,否则会被覆盖。
如果参数有默认值,只能放在没有默认值参数的后面。
3、可变参数
当我们定义函数的时候还不知道具体需要传入多少个参数,或者参数太长不方便写,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,当然也可以是0个。
→ 可变长参数
在函数参数名前面加入一个星号“*”,会自动将你传入进来的所有参数打包成一个元组。
→ 可变长关键字参数
在函数参数名前面加入两个星号“**”,会自动将你传入进来的所有参数打包成一个字典。
参数混合使用
注意:顺序一定要正确。
二、局部变量和全局变量
局部变量:在函数内部定义的变量(变量的生效范围在函数内部);
全局变量:在函数外部定义的变量(变量的生效范围是全部地方);
不同的函数,可以定义相同名字的局部变量,但是各自不会影响。
局部变量的作用是为了临时在函数中保存数据。
在函数内部是直接可以使用全局变量的,如果同名,优先使用局部变量(就近原则)。
修改全局变量
在函数内部可以使用全局变量,但是不能修改全局变量。
那么一定要修改怎么办呢?——需要关键字global声明。
可变的数据类型,不需要关键字global声明,也会修改全局变量,比如列表list。
总结:
对于不可变类型的全局变量来说,因其指向的数据不能修改,所以不使用global无法修改;
对于可变类型的全局变量来说,因其指向的数据可以修改,所以不使用global也可以修改;
【练习题】
写一个函数,检查传入的字典中的每一个value的长度,如果大于2,则保留两个长度的内容,并将新内容返回给调用者。
因为字典也是可变数据类型,所以会改变全局遍历的值,更好的方式是通过复制来处理。
以上是关于学习笔记18函数的其他功能的主要内容,如果未能解决你的问题,请参考以下文章