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 getopt模块处理命令行选项实例
May 13 Python
Python中的os.path路径模块中的操作方法总结
Jul 07 Python
Python 编码Basic Auth使用方法简单实例
May 25 Python
pandas修改DataFrame列名的方法
Apr 08 Python
python实时监控cpu小工具
Jun 21 Python
对python字典元素的添加与修改方法详解
Jul 06 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
对Python 语音识别框架详解
Dec 24 Python
Python时间和字符串转换操作实例分析
Mar 16 Python
python解析多层json操作示例
Dec 30 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
Jun 12 Python
python在package下继续嵌套一个package
Apr 14 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 Cookie的一个使用注意点
2008/11/08 PHP
PHP获取文件后缀名的三个函数
2012/10/15 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
[01:00:44]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第三局
2016/03/04 DOTA
Python sys.path详细介绍
2013/10/17 Python
python实现查询苹果手机维修进度
2015/03/16 Python
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
Python实现文件内容批量追加的方法示例
2017/08/29 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
Django框架model模型对象验证实现方法分析
2019/10/02 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
科尔士百货公司官网:Kohl’s
2016/07/11 全球购物
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
化工专业应届生求职信
2013/11/08 职场文书
教师批评与自我批评
2014/10/15 职场文书
拾金不昧感谢信
2015/01/21 职场文书
银行实习推荐信
2015/03/27 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
指导教师推荐意见
2015/06/05 职场文书
红白喜事主持词
2015/07/06 职场文书
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS