您的位置:首页 > 编程语言 > Python开发

python中的函数参数详解

2017-05-24 23:48 441 查看
python中函数参数分为5类,主要包括普通参数、指定参数、默认参数、动态参数和万能参数。

一、普通参数

这是最简单一种参数,严格按照顺序,将实际的参数赋值给形式参数

def func_name(name):  # name叫做func_name函数的形参
print(name)
func_name("xiaoma")  # xiaoma叫做func_name函数的实参


二、指定参数与默认参数(关键字参数)

默认参数必须放在参数列表的最后,指定参数将实际的参数赋值给制定的形式参数

# 为什么要设置默认,就比如有一个班级年龄大多数都是20岁,这样调用就简单了,如果有不是20岁,就可以提供额外的信息就好了,降低函数调用的难度
def func_name(name, age = 20):
print(name, age)
func_name("xiaoma", 18)  # 指定了一个参数
func_name("xiaoma")  # 使用了默认参数,就是age=20,这里要注意默认参数要放到单数列表最后
func_name(age=17, name="xiaoma")  # 调用指定参数名称,与函数申明的参数名称一致,与顺序无关


三、动态参数(可变参数)

为什么会有动态参数?你想假如做一个注册界面,必须要输入用户名和密码,其他也可以输入身份信息,学校信息等等,其他的这些信息就是关键字参数

“*args” 可变参数,默认将传入的参数,全部放置在元祖中

“**kwargs”关键字参数,默认将传入的参数,全部放置在字典中

def func(*args):  # "*"代表参数个数不确定的情况 (*)代表传入的参数将存储成元祖,如果不带*只能传一个参数,就不可变了
print(args)
func(*(1, 2, 3, 4, 5))  # 可以是元祖
li = [1, 2, 3, 4, 5]  # 也可以是列表
func(*li)

def func(**kwargs):  # (**)这是代表传入的参数将存储成字典
print(kwargs)
li = {"name": "heh", "age": 17}
func(a=1, b=2)
func(**li)


四、全能参数(* 和**都有)

def func(*args,**kwargs):
print("这是可变参数:%s 这是关键参数:%s" % (args, kwargs))
func(1, 2, a=1, b=2)
`结果:这是可变参数:(1, 2) 这是关键参数:{'a': 1, 'b': 2}``
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息