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

相关推荐