Skip to main content
 首页 » 程序教程

Python函数各种参数有什么区别

2016年05月26日11020

Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。那么Python的四种函数参数,普通参数、指定参数、默认参数、动态参数的区别是什么呢?

普通参数

Python函数的普通参数就是形参为一个普通的变量,并且实际参数和形式参数的个数确定。代码如下:

# name 叫做函数func的形式参数,简称:形参
def func(name):
    print name
# ######### 执行函数 ######### 
#  '风轻情淡' 叫做函数func的实际参数,简称:实参
func('风轻情淡')

指定参数

Python函数的指定参数是指定Python函数形式参数的实际参数,可以不按照函数的形式参数声明顺序传入参数。

默认参数

Python的默认参数则是在普通参数的基础上,给形式参数一个默认的取值。默认参数可以简化函数的调用。设置默认参数时要注意:

def func(name, age = 18):
    print "%s:%s" %(name,age)
# 指定参数
func('风轻情淡', 19)
# 使用默认参数,省去默认参数传参
func('老男孩')

1、必选参数在前,默认参数在后,否则Python的解释器会报错,默认参数放必选参数的前面容易产生歧义,Python解释器不知道传入的值为哪个参数的值。

2、如何设置默认参数。当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。

动态参数

Python的动态参数是传入参数的形式参数个数是不确定的。它以一个*加上形参名的方式来表示这个函数的实参个数不定,可能为0个也可能为n个。注意一点是,不管有多少个,在函数内部都被存放在以形参名为标识符的元组中。

Python的动态参数有如下三种执行方式:

# 动态参数形式1
def func1(*args):
    print(args)
# 执行方式
func1(11, 33, 4, 4454, 5)
# 执行方式
li = [11, 2, 2, 3, 3, 4, 54]
func1(*li)
# 动态参数形式2
def func2(**kwargs):
    print(kwargs)
# 执行方式
func2(name='风轻情淡', age=18)
# 执行方式
li = {'name': '风轻情淡', 'age': 18, 'gender': 'male'}
func2(**li)
# 动态参数形式3
def func3(*args, **kwargs):
    print(args)
    print(kwargs)

比较浅显的理解就是,形式1的动态参数传入了一个列表作为实际参数,形式2则是传入一个字典作为实际参数,形式3是前两者的组合形式。

评论列表暂无评论
发表评论