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中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
Python 快速实现CLI 应用程序的脚手架
Dec 05 Python
浅析Python3爬虫登录模拟
Feb 07 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 Python
Python3 Post登录并且保存cookie登录其他页面的方法
Dec 28 Python
kali中python版本的切换方法
Jul 11 Python
Python多线程多进程实例对比解析
Mar 12 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
python实现图像高斯金字塔的示例代码
Dec 11 Python
pycharm进入时每次都是insert模式的解决方式
Feb 05 Python
pandas按条件筛选数据的实现
Feb 20 Python
教你用Python matplotlib库制作简单的动画
Jun 11 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实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
php无限极分类实现方法分析
2019/07/04 PHP
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
JavaScript游戏之优化篇
2010/11/08 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
three.js实现圆柱体
2018/12/30 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
[37:21]完美世界DOTA2联赛PWL S2 Inki vs Magma 第二场 11.22
2020/11/24 DOTA
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
浅谈Python单向链表的实现
2015/12/24 Python
pycham查看程序执行的时间方法
2018/11/29 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
2019/06/19 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
python实现udp聊天窗口
2020/03/31 Python
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
EJB实例的生命周期
2016/10/28 面试题
母亲节演讲稿范文
2014/01/02 职场文书
七夕情人节促销方案
2014/06/07 职场文书
正风肃纪查摆剖析材料
2014/10/10 职场文书
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL
vscode内网访问服务器的方法
2022/06/28 Servers