码迷,mamicode.com
首页 > 编程语言 > 详细

python-形参与实参-01

时间:2017-08-11 14:46:25      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:固定   分配   内存   虚拟   get   lex   ffffff   空间   参数转换   

例子:

  

1 def t(x,y,z):
2     print(x)
3     print(y)
4     print(z)
5 
6 t(1,2,3)    #位置参数 与形参一一对应
7 t(2,z=7,y=5)    #关键参数 与形参顺序无关,但是关键参数不能写在位置参数前面

实参和形参

  实参:实际参数,调用函数时传给函数的参数,可以是常量、变量、表达式、函数,传给形参

  形参:形式参数,不占内存空间,形参变量只有在调用时才分配内存单元,目的是函数调用时接收实参

二者区别:

  实参:是一个变量,占用内存空间,数据传送单向,实参传给形参,不能形参传给实参

  形参:虚拟的,不占用内存空间,形参变量只有被调用时才分配内存单元

 

2.默认参数

1 def install(t,target=True,port=3306):
2     print(t)
3     print(target)
4     print(port)
5 install(acc)

默认参数特点:调用函数时,默认参数非必须传送

作用:

  (1)默认安装值

  (2)默认数据库端口号

3.参数组

1 #参数组
2 def tuple(*args):
3     print(args)
4 
5 tuple(1,2,3,4,55)
6 tuple(*[1,2,3,4,5,6]) # args = [1,2,3,4,5,6]

其中*代表:参数个数不固定

*args:接收N个位置参数,然后转换成元组的形式

1 #参数组(2)元组
2 def options(x,*args):
3     print(x)
4     print(args)
5 options(1,2,3,4,5,6,7,8,9)

**kwargs:接收N个关键字参转换成字典的方式

1 #**kwargs   把N个关键字参数转换成字典的方式
2 def dict(**kwargs):
3     print(kwargs[name])
4     print(kwargs[age])
5     print(kwargs[sex])
6 dict(name=Msl23,age=18,sex=M)
7 dict(**{name:Msl23,age:18,sex:M})

结合:

 1 #结合
 2 def jiehe(name,**kwargs):
 3     print(name)
 4     print(kwargs)
 5 jiehe(Msl23,age=18,sex=M)
 6 
 7 #方式一
 8 def fs1(name,age=18,**kwargs):
 9     print(name,age,kwargs)
10 fs1(alex,sex=M,car=house)
11 #执行结果:  alex 18 {‘sex‘: ‘M‘, ‘car‘: ‘house‘}
12 
13 #方式二
14 def fs2(name,age=18,*args,**kwargs):
15     print(name,age,args,kwargs)
16 fs2(Msl23,18,free,sex=M,car=house)
17 #执行结果:  Msl23 18 (‘free‘,) {‘sex‘: ‘M‘, ‘car‘: ‘house‘}

 

python-形参与实参-01

标签:固定   分配   内存   虚拟   get   lex   ffffff   空间   参数转换   

原文地址:http://www.cnblogs.com/msl23/p/7340338.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!