Python函数笔记2

摘要:

Python函数的缺省参数、参数数量可变、命名关键字参数

函数的缺省参数

缺省参数语法:

注:

1、函数参数可以不采用缺省参数,如之前的例子,也可以有多个(可以全部都是)。

2、缺省参数必须自右至左依次存在,如果一个参数有缺省参数,则其右侧的所有参数都必须有缺省参数。

示例:

图:缺省参数示例

示例2:

图:一旦出现缺省,后面都要缺省

参数个数可变函数:

如之前学过的print函数,函数的参数个数是可以变化的,我们自定义的函数也可以很简单的实现函数参数个数可变。

1、*() 即 *元组 方式:

以元组方式实现函数参数个数可变。

2、**{} 即 **字典 方式:

以字典的方式实现参数个数可变函数。

3、参数可变(混合式):

采用元组,字典混合使用,实现参数个数可变函数。

命名关键字参数

上例,函数期望要求kw输入中有 school和address两个关键字参数,但是实际调用时,不给的这两参数函数也会调用,这不是期望的。如何解决这个问题呢?命名关键字参数可以解决这个问题。

*号之后的参数,name1,name2就是命名关键字参数,函数调用时不指定 name1,name2就报错。

注:命名关键字参数和位置参数不同

示例:

函数小结:

1、Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。

2、默认参数一定要用不可变对象

3、要注意定义可变参数和关键字参数的语法

*args是可变参数,args接收的是一个元组

**kw是关键字参数,kw接收的是一个字典

4、调用函数时如何传入可变参数和关键字参数:

可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3))

关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})

def 语句实时运行

def 语句实际上是可执行的,当他运行时候,他创建一个新的函数对象,并将其绑定到一个变量名。

def 语句可以出现在其他任何语句出现的地方。

函数嵌套:

Python函数可以嵌套,实时运行另外一个例子。

函数变量

可以把函数名赋值给变量,通过变量调用函数。

一切皆对象!

函数做实参

可以把函数名赋值给变量,通过变量调用函数位置传参。

函数做返回值:

函数可以作为函数的返回值。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180223A170FC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券