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实现发送email的几种常用方法
Aug 18 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
Python基础之变量基本用法与进阶详解
Jan 03 Python
python连接PostgreSQL过程解析
Feb 09 Python
new_zeros() pytorch版本的转换方式
Feb 18 Python
Python datetime 格式化 明天,昨天实例
Mar 02 Python
Python网络爬虫四大选择器用法原理总结
Jun 01 Python
python相对企业语言优势在哪
Jun 12 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
python爬虫用mongodb的理由
Jul 28 Python
Python+unittest+requests 接口自动化测试框架搭建教程
Oct 09 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
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
动易数据转成dedecms的php程序
2007/04/07 PHP
php中随机显示图片的函数代码
2011/06/23 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
再谈javascript面向对象编程
2012/03/18 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
AngularJS中$http使用的简单介绍
2017/03/17 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
Python中用altzone()方法处理时区的教程
2015/05/22 Python
python中解析json格式文件的方法示例
2017/05/03 Python
Python进阶_关于命名空间与作用域(详解)
2017/05/29 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
高级方案规划工程师岗位职责
2013/11/29 职场文书
个人素质的自我评价分享
2013/12/16 职场文书
车间组长岗位职责
2013/12/20 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
安全责任书模板
2014/07/22 职场文书
2015年世界急救日宣传活动方案
2015/05/06 职场文书
南极大冒险观后感
2015/06/05 职场文书