python 参数
摘自: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参数相比,仅仅在参数前面加了一个*
号。在函数内部,参数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 参数的更多相关文章
- Python参数笔记
Python参数 1. 普通参数 必须要传入和定义时个数相同的参数 def miao(acfun, bilibili): print(acfun, bilibili) miao(11, 22) > ...
- Python参数基础
Python参数基础 位置参数 通过位置进行匹配,把参数值传递给函数头部的参数名称,顺序从左到右 关键字参数 调用的时候使用参数的变量名,采用name=value的形式 默认参数 为没有传 ...
- Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数
Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数 一.Python参数类型 形参:定义函数时的参数变量. 实参:调用函数时使用的参数变量. 参数传递的过程 ...
- python 参数定义库argparse
python 参数定义库argparse 这一块的官方文档在这里 注意到这个库是因为argparse在IDE中和在ipython notebook中使用是有差异的,习惯了再IDE里面用,转到ipyth ...
- python 参数类型理解
简介 大家都知道,在java中,函数或者方法的参数在调用时必须对其进行传参操作,也就是所谓的必选参数,也可以称为位置参数,除此之外,python还拥有其他语言不具有的一些参数类型,以下将进行一一介绍. ...
- python 参数的组合
现在我们知道python定义函数的参数类型有:必选参数 默认参数 可变参数 关键字参数 但是在我们日常中我们是可以组合使用这些参数的:但是使用的时候,参数定义是有顺序的 定义的顺序必须是:必选参数,默 ...
- <转>Python 参数知识(变量前加星号的意义)
csdn上的牛人就是多,加油 —————————————————————————— 过量的参数 在运行时知道一个函数有什么参数,通常是不可能的.另一个情况是一个函数能操作很多对象.更有甚者,调用自身的 ...
- python参数
1.形参变量和实参 形参变量:只有在被调用时才分配内存单元,在调用结束时,即释放所分配的内存单元,因此,形参只在函数内有效,函数调用结束返回主调用函数后则不能再使用该形参变量. 实参:可以是常量,变量 ...
- python参数传递方式
原文地址:http://www.cnblogs.com/zhaopengcheng/p/5492183.html python中一切皆对象,函数中参数传递的是对象的引用. 1在函数中改变变量指向的对象 ...
随机推荐
- two sum - leetcode
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- Renderer.materials
修改方法 meshBody.renderer.materials[].mainTexture= clothes[]; meshBody.renderer.materials[]=maters[]; 以 ...
- Linux 删除文件中某一行的方法
如果有一个abc.txt文件,内容是: aaa bbb ccc ddd eee fff 如果要删除aaa,那么脚本可以这样写: sed -i '/aaa/d' abc.txt 如果删除的是一个变量的值 ...
- 【markdown】markdown常用语法
标题 用1~6个# 标题1 标题2 标题3 标题4 标题5 标题6 源码: # 标题1 ## 标题2 ### 标题3 #### 标题4 ##### 标题5 ###### 标题6 引用 引用使用 引用使 ...
- java9-1.类,抽象类,接口的综合小练习
/* 教练和运动员案例(学生分析然后讲解) 乒乓球运动员和篮球运动员. 乒乓球教练和篮球教练. 为了出国交流,跟乒乓球相关的人员都需要学习英语. 请用所学知识: 分析,这个案例中有哪些抽象类,哪些接口 ...
- 护眼色的RGB值
网上流行护眼色的RGB值和颜色代码 在搜索引擎搜“护眼色”,就会搜出一堆关于保护眼睛的屏幕颜色文章,说的统统是一种颜色,有点像绿豆沙的颜色.方法就是在屏幕设置里, 色调:85:饱和度:123:亮度:2 ...
- 使用EXISTS语句注意点
1.使用EXISTS语句,其目标列一般用“*”,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义. 2.使用EXISTS语句一定要注意上下两个表之间要建立联系. 例如,查询所有选修了1号 ...
- Gitblit-Git版本服务器环境部署
Gitblit介绍 Gitblit 是一个纯 Java 库用来管理.查看和处理 Git 资料库.相当于 Git 的 Java 管理工具,支持linux系统. Git是分布式版本控制系统,它强调速度.数 ...
- Centos7下修改默认网卡名(改为eth0)的操作记录
安装好centos7版本的系统后,发现默认的网卡名字有点怪,为了便于管理,可以手动修改.下面对centos7版本下网卡重命名操作做一记录:1)编辑网卡信息[root@linux-node2~]# cd ...
- JS的Document属性和方法
Attributes 存储节点的属性列表(只读)childNodes 存储节点的子节点列表(只读)dataType 返回此节点的数据类型Definition 以DTD或XML模式给出的节点的定义(只读 ...