2020 python学习第十二天————函数参数与函数对象

Posted 最冷不过冬夜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020 python学习第十二天————函数参数与函数对象相关的知识,希望对你有一定的参考价值。

1.1 函数的参数分两类

  1.1.1 定义阶段函数内指定的参数称之为形式参数,简称形参

    形参就相当于变量名

  1.1.2 调用阶段括号内传入的值称之为实际参数,简称实参

    实参就相当于变量值

  调用函数时会将实参的值绑定给形参,变量只能在函数内用

1.2 第一组形参与实参

  1.2.1 位置形参

    按照从左到右的顺序依次定义形参

    特点:必须被传值,多一个不行少一个也不行

      def func(x,y):

  1.2.2 位置实参

    按照从左到右的顺序依次定义实参

    特点:按照位置与形参一一对应

      func(1,2)

  1.2.3 关键字实参

    按照key=value的形式为指定的形参传值

    特点:指名道姓为某个形参传值,可以完全打乱顺序

      def func(x, y):

      func(y=2, x=1)

    注意:可以混用位置实参与关键字实参,但是

    1、不能对同一个形参重复赋值

      def func(x,y):

      func(1,2,x=3)

    2、关键字实参必须跟在位置实参的后面

      def func(x,y):

      func(1,y=2)

  1.2.4 默认参数

    特点:具有默认值的形参,指的是在定义函数阶段就已经为参数赋值,这意味着在调用函数阶段可以不用为默认参数传值

    注意:

      1、位置形参必须放在默认形参的前面。

      2、默认形参的值是在函数定义阶段就被固定的,如果调用没有为默认形参传值,那么不会每次调用都重新赋值。函数的调用彼此之间应该做到没有关联,所以说默认形参的通常应该是不可变类型。

1.3 第二组形参与实参

  可变长参数

    可变长指的是在调用函数时,传入的实参个数不固定,而实参是为形参赋值的

    所以对应着也应该有新的形参格式来负责接收不固定长度的实参

  1.3.1 形参中带*与**

    1. *形参名:*会负责把溢出的位置实参存成元组然后赋值给后面的形参名,形参名通过应该是args

    2. **形参名:**会负责把溢出的关键字实参存成字典然后赋值给后面的形参名,形参名通过应该是kwargs

      注意:*与**在形参中混用,整体的顺序如下

        def func(x,y=2,*m,**n):

  1.3.2 实参中带*与**

    1. 实参中带*,*后跟的那个值应该是一个可以被for循环遍历的值

      *会后面的那个值打散成位置实参

    2. 实参中带**,*后跟的那个值应该是一个字典

      **会后面的那个值打散成关键字实参

    形参中带*与**是汇总操作

    实参中带*与**是打散操作

 

2.1 函数对象

  在python中函数是第一类对象,简称函数对象

  函数对象指的就是可以把函数当做变量一样去使用

2.2 可以赋值

  def foo():

  f=foo

  f()

2.3 可以当做参数传给另外一个函数

  def func(aaa)  # aaa=函数foo的内存地址

    print(aaa)

  def foo():

    print(‘from foo‘)

  func(foo)

2.4 可以当做函数的返回值

2.5 可以当做容器类型的元素

以上是关于2020 python学习第十二天————函数参数与函数对象的主要内容,如果未能解决你的问题,请参考以下文章

python学习第十二天:闭包函数与装饰器

第十二天python3 匿名函数

学习Python第十二天

python 第十二天2018.04.01 带参数的装饰器,,函数的有用信息

学习python第十二天,函数4 生成器

《Python编程从入门到实践》——学习python的第十二天