python笔记5--函数的参数定义

函数相当于接口,当完成一个函数的定义时,函数的内部相当于已经封装起来了,调用者只需要知道如何正确的传递函数的参数,函数会返回什么样的值。

python中,函数的定义一律采用def开头,后面加函数名,函数名后面的参数确实相当灵活,也是调用者需要理解透彻的。python中函数的参数归纳为一下4种定义方式

1.必选参数

该参数就是我们在C语言中常用的传递给函数的参数,不做过多说明

2.默认参数
该参数类似于C/C++中的缺省值,用于必选参数之后,可降低函数调用的复杂度。调用的时候,调用者也可进行相应的修改,否则就当做是默认值

ex.

def fun(name,age=20,language='python');

print 'name:',name

print 'age:',age

print 'language:',language

其中name为必选参数,调用者必须传值,age和language为默认参数,调用时可以进行修改,也可以使用默认值,若发生修改则按顺序修改参数,如:

>>fun('zhangsan','30')

print name:zhangsan

print age:30

print language:python

定义默认参数时的误区—>>>>默认参数必须要指向不变的对象!!!原因很简单:默认参数会随着函数的不断调用发生变化


3.可变参数(“*args”)

顾名思义,可变参数允许调用者传入0个或任意多个参数,这些参数时没有参数名的,这些传进来的参数会以tuple的形式访问,往往以“*”的形式定义

ex.


可以看到可变参数的访问形式和定义方式,可变参数主要用于有时函数定义的时候预先不知道要接受多少参数时使用


4.关键字参数(“**kw”)

参考可变参数,但其访问形式为一个dict,而且这些参数在调用者传参时是有参数名的

ex.


可以看到关键字参数的访问形式和定义,关键字参数在函数的调用中起着扩展函数的功能

---------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------

当这些参数组合使用时,又会发生什么???

ex.



结论:在函数调用的时候,Python解释器会自动按照参数的位置和参数名将对应的参数传递进去

匹配顺序:

1.先位置匹配;

2.关键字匹配;

3.收集匹配中的元组参数;

4.收集匹配中的关键字参数


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章