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时间整形转标准格式的示例分享
Feb 14 Python
Python 创建子进程模块subprocess详解
Apr 08 Python
python使用matplotlib绘制柱状图教程
Feb 08 Python
python生成词云的实现方法(推荐)
Jun 13 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
Django中使用第三方登录的示例代码
Aug 20 Python
基于python实现学生管理系统
Oct 17 Python
使用OpenCV实现仿射变换—缩放功能
Aug 29 Python
python机器学习实现决策树
Nov 11 Python
python如何把字符串类型list转换成list
Feb 18 Python
基于Python3读写INI配置文件过程解析
Jul 23 Python
pytorch 权重weight 与 梯度grad 可视化操作
Jun 05 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 文件上传功能实现代码
2009/06/24 PHP
php微信支付接口开发程序
2016/08/02 PHP
Add a Table to a Word Document
2007/06/15 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
ie9 提示'console' 未定义问题的解决方法
2014/03/20 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
2014/05/19 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
vue实现2048小游戏功能思路详解
2018/05/09 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
原生javascript实现连连看游戏
2019/01/03 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
python实现给字典添加条目的方法
2014/09/25 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
详解opencv Python特征检测及K-最近邻匹配
2019/01/21 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
详解Python中第三方库Faker
2020/09/25 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
小学班主任事迹材料
2014/12/17 职场文书
小学生手册家长意见
2015/06/03 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
vue实现移动端div拖动效果
2022/03/03 Vue.js
PHP正则表达式之RCEService回溯
2022/04/11 PHP