python基础-函数参数

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


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基础-函数参数 写在前面 如非特别说明,下文均基于Python3 摘要本文详细介绍了函数的各种形参类型...
    理查德成阅读 487评论 0 2
  • 1.函数参数 1.1 位置参数 我们先写一个计算x2的函数: 对于power(x)函数,参数x就是一个位置参数。当...
    时间之友阅读 382评论 0 2
  • python函数的参数是目前见过最复杂的参数了。 C语言里用的最多的可变参数函数就是scanf和printf了,j...
    米耳阅读 359评论 0 0
  • 位置参数 我们先写一个计算x2的函数: 对于power(x)函数,参数x就是一个位置参数。 当我们调用power函...
    喵在野阅读 329评论 0 1
  • 2017.05.12 参考资料: 廖雪峰的官方网站 python函数-菜鸟教程 1、可更改(mutable)与不可...
    Stefanie0503阅读 317评论 0 0