python 参数
2016-07-08 18:13
399 查看
摘自:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738449338c8a122a7f2e047899fc162f4a7205ea3000默认参数是一个固定的值比如说>>> def Foo(age,name='zhangsan'):
... print name,age
...
>>> Foo(25)
zhangsan 25这里的name,就是一个固定参数,虽然它是固定的,但是当你的业务有需求的时候,不想用这个值,而是想自己传入一个值的时候,可以这么做>>> Foo(25,'wanger')
wanger 25还有一点要注意的是, 形参的位置排放,当我们把形参放在前面的时候会报错可变参数(*arg):顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。定义可变参数和定义list或tuple参数相比,仅仅在参数前面加了一个
关键字参数:(**arg)关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict,然后。关键字参数的作用就是我们可以扩展函数的功能比如我我们现在定义一个学生信息函数def person(name,age,**args):
print 'name: ',name,'age: ',age,'other: ',args
#person('baoxy',25)
person('baoxy\n','25\n',city = 'anhui',sex = 'Man')输出的结果分别是C:\Python27\python.exe X:/708/lambda.py
name: baoxy age: 25 other: {}name: baoxy
age: 25
other: {'city': 'anhui', 'sex': 'Man'}注:我们在使用参数组合的时候,我们要注意定义参数的顺序必须是:必选参数、默认参数、可变参数和关键字参数。还有一点要注意的是,我们在传可变参数的时候,直接传入参数就行,比如说函数名为Foo,那么我们可以使用Foo('a1','a2','a3')我们传关键字参数的时候也是这样Foo(name='bao',age =25)但是当我们传入一个列表或者是字典的时候要加上 * 和 **比如说:L=【1,2,3,4】调用的时候就的 Foo(*L)D = {'name':'bao','age':25}调用的时候就的 Foo(**D)现在我们看一下具体的实例
... print name,age
...
>>> Foo(25)
zhangsan 25这里的name,就是一个固定参数,虽然它是固定的,但是当你的业务有需求的时候,不想用这个值,而是想自己传入一个值的时候,可以这么做>>> Foo(25,'wanger')
wanger 25还有一点要注意的是, 形参的位置排放,当我们把形参放在前面的时候会报错可变参数(*arg):顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。定义可变参数和定义list或tuple参数相比,仅仅在参数前面加了一个
*号。在函数内部,参数
numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数:比如说
def show2(*arg): for item in arg: print item show2('a','b','1',2,3) 可变参数就是说:可以随意的传入参数,调用的时候,python会自动的给传入的参数包装成列表或者元祖的形式传给实参
关键字参数:(**arg)关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict,然后。关键字参数的作用就是我们可以扩展函数的功能比如我我们现在定义一个学生信息函数def person(name,age,**args):
print 'name: ',name,'age: ',age,'other: ',args
#person('baoxy',25)
person('baoxy\n','25\n',city = 'anhui',sex = 'Man')输出的结果分别是C:\Python27\python.exe X:/708/lambda.py
name: baoxy age: 25 other: {}name: baoxy
age: 25
other: {'city': 'anhui', 'sex': 'Man'}注:我们在使用参数组合的时候,我们要注意定义参数的顺序必须是:必选参数、默认参数、可变参数和关键字参数。还有一点要注意的是,我们在传可变参数的时候,直接传入参数就行,比如说函数名为Foo,那么我们可以使用Foo('a1','a2','a3')我们传关键字参数的时候也是这样Foo(name='bao',age =25)但是当我们传入一个列表或者是字典的时候要加上 * 和 **比如说:L=【1,2,3,4】调用的时候就的 Foo(*L)D = {'name':'bao','age':25}调用的时候就的 Foo(**D)现在我们看一下具体的实例
def Foo(*arg): for item in arg: print item L = [1,2,3,4,5] Foo(L) 得出的记过是:[1, 2, 3, 4, 5] Foo(*L) 得出的结果是: 1 2 3 4 5 所以第二个才是我们想要的结果
def Foo(**args): print args D = {'name':'bao','age':25,'city':'anhui'} #Foo(D) 这个执行后得出的结果是格式错误 Foo(**D) 这个才是我们想要的结果
相关文章推荐
- 存钱问题
- python初步
- 再次mergesort
- python--无界面4*4拼图 游戏
- Python脚本通过unixODBC驱动访问Greenplum(4.3.8.2)数据库安装指导
- Python Web开发——学习笔记
- Python Tutoral 学习笔记7 --Standard Library
- Python访问数据库——学习笔记
- Python电子邮件——学习笔记
- Python常用的第三方模块——学习笔记
- Python常用内建模块——学习笔记
- pyodbc访问数据库(python ODBC访问数据库)
- python下载文件的三种方法
- <python> 匯入excel
- Python使用hashlib模块做字符串加密
- Python面向对象之类的成员
- Python中多线程的创建及基本调用方法
- 嵌套类型Array[struct]通过python+thrift保存至HBase
- Python的getattr用法
- python2.7中模块学习- textwrap 文本包装和填充