python传递参数方式小结


Posted in Python onApril 17, 2015

本文实例总结了python传递参数方式。分享给大家供大家参考。具体分析如下:

当形参如*arg时表示传入数组,当形参如**args时表示传入字典。

def myprint(*commends,**map):  
 for comm in commends:  
 print comm  
 for key in map.keys():  
 print key,map[key]  
myprint("hello","word",username="tian",name="wei")

输出:

hello
word
username tian
name wei

python中定义一个函数,可以通过正常的只传入值或key-value的方法调用。但是如果第一个时参数传入的是key-value的方法,那么后面的必须都是key-value方法,如果第一个不是,那么后面的可以根据情况再传入值就可以了。

例子如下:

def parrot(voltage="fff",state='a stiff',action='voom',type='Norwegian Blue'):
 print "-- This parrot wouldn't", action,  
 print "if you put", voltage, "volts through it." 
 print "-- Lovely plumage, the", type  
 print "-- It's", state, "!" 
parrot(1000)#可以  
parrot(action = 'VOOOOOM', voltage = 1000000)
#可以,都是key-value方法  
parrot('a thousand', state = 'pushing up the daisies')
#可以,第一个实参为直接传入法,后面无所谓了  
parrot('a million', 'bereft of life', 'jump')
#可以,都是传值,而且由于形参都有默认值,则按顺序一个个替换  
parrot(voltage="33","ff","abc")
# 不可以,第一个为Key-value传值法,以后的都必须是

Python新手入门,在python中函式定义主要有四种方式:

① F(arg1,arg2,...),最常见的定义方式,一个函式可以定义任何个参数,每个参数间用逗号分割,用这种参数在调用的时候必须在函式名后面的小括号中提供个数相等的值(实参),并且顺序必须相同,形参与实参一一对应

def a(x,y): 
  print x,y

调用a函式,a(1,2)则x=1,y=2,如果a(1)或者a(1,2,3)则会出错

② F(arg1,arg2=value2,...agrN=valueN),则将为函式提供默认值。

def a(x,y=3):
  print x,y

调用该函式,a(1,2)则x=1,y=2,如果a(1)不会导致错误,此时x=1,y=3,y值将使用默认值,a(y=4,x=2)同理

可变参数:

③ F(*arg1),以一个*加形参的方式来表示函式的实参个数不确定,参数个数>=0,采用这样的方式定义函式,在函式内部将以实参名的方式构建一个元组(tuple)

def a(*x):  
  # 定义一个名为x的元组

def a(*t):  
  print x 

>>>a(1) 
(1,) 
>>>a() 
None 
>>>a(1,2,3) 
(1,2,3)

遍历该元组(计算总和)的一种方式,此时r定义为一元组:

def y(*r):
  x = 0
  for t in r:
    x += t
  print x

④ F(**arg)形参名前加2个**表示在函式内部将被存放在以形参名为标识符的dictionary,这时调用将使用arg1=value1,arg2=value2...

def a(**b):  
  print b 

>>>a() 
None 
>>>a(x=1,y=2) 
{'y':2,'x':1}
#注意遍历返回的顺序与形参位置顺序相反
>>>a(1,2) #error

可通过以下方式来获取预期键值对,如果形参是未定义'y'的键,将返回None

def a(**x):  
  print x.get('y')

>>>a(x=1,y=2) 
2 
>>>a(x=1) 
None 
>>>a(x=1,b=2)
None

Python参数调用过程按照以上四种方法优先级依次降低。

①方式解析,然后是②中的arg=value方式,再分别按照③>④优先级传参

这是自己第一份通过Blog整理的学习笔记,希望对自己,对浏览至此的各位朋友有所帮助,以上函式命名不符合规范,仅用于简单标识说明,使用python 2.6.2

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python中的对象,方法,类,实例,函数用法分析
Jan 15 Python
浅析Python基础-流程控制
Mar 18 Python
谈谈如何手动释放Python的内存
Dec 17 Python
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
Django中使用celery完成异步任务的示例代码
Jan 23 Python
PyQt5每天必学之拖放事件
Aug 27 Python
python2与python3的print及字符串格式化小结
Nov 30 Python
Python2 与Python3的版本区别实例分析
Mar 30 Python
python使用隐式循环快速求和的实现示例
Sep 11 Python
Python+unittest+requests 接口自动化测试框架搭建教程
Oct 09 Python
PyCharm Community安装与配置的详细教程
Nov 24 Python
Python matplotlib绘制条形统计图 处理多个实验多组观测值
Apr 21 Python
使用70行Python代码实现一个递归下降解析器的教程
Apr 17 #Python
python类继承与子类实例初始化用法分析
Apr 17 #Python
python中split方法用法分析
Apr 17 #Python
仅用50行代码实现一个Python编写的计算器的教程
Apr 17 #Python
python字典get()方法用法分析
Apr 17 #Python
详解Python中__str__和__repr__方法的区别
Apr 17 #Python
使用Python设置tmpfs来加速项目的教程
Apr 17 #Python
You might like
php提示undefined index的几种解决方法
2012/05/21 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
很可爱的输入框
2008/08/03 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
jquery实现限制textarea输入字数的方法
2017/09/06 jQuery
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
加快Vue项目的开发速度的方法
2018/12/12 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
2020/11/02 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
python网络编程学习笔记(一)
2014/06/09 Python
使用python实现接口的方法
2017/07/07 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
毕业生的求职信范文分享
2013/12/04 职场文书
法务专员岗位职责
2014/01/02 职场文书
通信工程专业求职信
2014/06/04 职场文书
招商引资工作汇报
2014/10/28 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
贪污检举信范文
2015/03/02 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
运动会跳远广播稿
2015/08/19 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书