欢迎光临
我们一起进阶

Python函数-函数参数:必选参数、默认参数、可变参数、关键字参数

Python函数参数用法

函数参数:必选参数、默认参数、可变参数、关键字参数

(1)必选参数:顾名思义,就是函数必须有的入参;
(2)默认参数:在函数定义时给定一个初始值,在函数调用时可以不传这个参数,采用默认参数的值;下例中的y就是默认参数;

下面进行举例说明
 def helloWorld(a):
       print('输出:hello')

   if __name__ == '__main__':
       helloWorld("aaa")   ## 必须要有参数

———— 默认参数 ———————————————————-

说明:

1.必选参数在前,
2,有多个默认参数时,调用的时候,既可以按顺序提供默认参数
3,也可以不按顺序提供部分默认参数。当不按顺序提供部分默认参数时,需要把参数名写上

例如:

 def enroll(name, gender, age=6, city='Beijing'):
     print('name:', name)
     print('gender:', gender)
     print('age:', age)
     print('city:', city)


 enroll('Bob', 'M', 7)
 enroll('Adam', 'M', city='Tianjin')

特别重要:
定义默认参数要牢记一点:默认参数必须指向不变对象!

例如:

 def add_end(L=[]):
    L.append('END')
     return L

 print (add_end())
 print (add_end())

结果:
“`
[‘END’]
[‘END’,’END’]

 原因说明:
**Python函数在定义的时候,默认参数L的值就被计算出来了,在每次调用时,L参数已经变前一次调用所更改了**

 所以:

避免在函数里面去修改函数的默认参数值。


-------------------- 关键字参数   --------------------------------------------

def about(name,course,site):
print (name,course,site)

about('jim','100','www.baidu.com')  
**必须按顺序传参**
about(site='www.baidu.com',name='green',course=100)   
**以关健字方式传入参数(可以不按顺序)**




**-------------- 不定长参数(可变参数) (这些可变参数在函数调用时自动组装为一个tuple)-----------------------------------------------------------**

 顾名思义:
     **可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。**

**重要说明:**
> (可变参数的好处是,不用事先准备好LIST或者元组)
这些可变参数在函数调用时自动组装为一个tuple


 定义:

 ```
def loop(*args):
    for x in args:
         print x

 loop(1,2,3)

结果是:
1
2
3

说明2:
如果已经有了一个列表或者元组,怎么传递可变参数呢??? 如下:

 def loop(*args):
     for x in args:
         print x

 loop(1,2,3)
 a=[4,5,6]
 loop(*a) ##  这里要在列表 或元组 前面加* 连传递参数进来。

###——————- 这也是不定长参数 —————————————————————-

说明:
这些关键字参数在函数内部自动组装为一个dict

函数定义:
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)

调用1:

person(‘Michael’, 30)
name: Michael age: 30 other: {}

调用2:

person(‘Adam’, 45, gender=’M’, job=’Engineer’)
name: Adam age: 45 other: {‘gender’: ‘M’, ‘job’: ‘Engineer’}

调用3:

extra = {‘city’: ‘Beijing’, ‘job’: ‘Engineer’} —事先已经有了一个字典
person(‘Jack’, 24, extra)

extra表示把extra这个dict的所有key-value用关键字参数传入到函数的kw参数
name: Jack age: 24 other: {‘city’: ‘Beijing’, ‘job’: ‘Engineer’}

调用说明:
extra表示把extra这个dict的所有key-value用关键字参数传入到函数的kw参数,kw将获得一个dict,
注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。

赞(0) 打赏
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

小白学堂,学的不止是技术,更是前程

关于我们免责声明

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏