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字典多键值及重复键值的使用
Nov 04 Python
解决python2.7用pip安装包时出现错误的问题
Jan 23 Python
python os用法总结
Jun 08 Python
python实现猜单词小游戏
May 22 Python
对Python发送带header的http请求方法详解
Jan 02 Python
Pytorch之Variable的用法
Dec 31 Python
pycharm不能运行.py文件的解决方法
Feb 12 Python
使用python实现时间序列白噪声检验方式
Jun 03 Python
Python使用pyenv实现多环境管理
Feb 05 Python
理解深度学习之深度学习简介
Apr 14 Python
一篇文章带你搞懂Python类的相关知识
May 20 Python
python基础之函数的定义和调用
Oct 24 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 pki加密技术(openssl)详解
2013/07/01 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
php进程间通讯实例分析
2016/07/11 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
小程序click-scroll组件设计
2019/06/18 Javascript
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
进程的查看和调度分别使用什么命令
2013/12/14 面试题
MYSQL基础面试题
2012/05/13 面试题
超市营业员岗位职责
2013/12/20 职场文书
社区志愿者心得体会
2014/01/03 职场文书
大学活动总结格式
2014/04/29 职场文书
食品安全宣传标语
2014/06/07 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
《观察物体》教学反思
2016/02/17 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers
MySQL七大JOIN的具体使用
2022/02/28 MySQL