python基础-函数参数

**1. 位置参数: **
要求必须传入的参数,类似c语言中的普通参数
**2. 默认参数: **
在python中,定义函数的时候可以给函数参数一个默认值(即:默认参数),当调用函数时不给默认参数传值,则该参数使用默认值。
例:


python基础-函数参数_第1张图片
Snip20170114_2.png

**3. 可变参数: **
定义函数时声明一个可变参数,可以在调用函数的时候传入多个参数,而且参数个数随机。

定义:

>>> def test2(*numbers): #numbers可类比c中数组名
...     for i in numbers:
...             print(i)

调用:

test2(1,2,3)  #输出 1 2 3
nums=[1,2,3]
test2(*nums) #输出也是1 2 3

**4. 关键字参数: **
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
定义:

>>> def test3(**kw): //可类比c中的二级指针取值
...     print(kw)

使用:

>>> test3(city="guangzhou")
{'city': 'guangzhou'}
>>> test3(city="guangzhou",name="hanl")
{'city': 'guangzhou', 'name': 'hanl'}
>>> test3()
{}
>>> dic={'city': 'guangzhou', 'name': 'hanl'}
>>> test3(**dic)
{'city': 'guangzhou', 'name': 'hanl'}

**5. 命名关键字参数: **
如果需要限制关键字参数的名字就需要使用命名关键字参数
定义:

#  *后面的参数被视为命名关键字参数
>>> def test3(name,*,city):
...     print(name)
...     print(city)

使用:

>>> test3('hanl',city='wuhan')
hanl
wuhan

如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了

>>> def test3(name,*args,city,age):
...     print(name,args,city,age)
...
>>> test3('hanl',1,1,2,city='wuhan',age=22)
hanl (1, 1, 2) wuhan 22

你可能感兴趣的:(python基础-函数参数)