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实现在matplotlib中两个坐标轴之间画一条直线光标的方法
May 20 Python
python数据类型判断type与isinstance的区别实例解析
Oct 31 Python
教你一步步利用python实现贪吃蛇游戏
Jun 27 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
python 列表、字典和集合的添加和删除操作
Dec 16 Python
python实现图片横向和纵向拼接
Mar 05 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
如何使用Python自动生成报表并以邮件发送
Oct 15 Python
pytorch 带batch的tensor类型图像显示操作
May 20 Python
python疲劳驾驶困倦低头检测功能的实现
Apr 04 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生成zip压缩文件的方法详解
2013/06/09 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
浅析PHP echo 和 print 语句
2020/06/30 PHP
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
php和js对数据库图片进行等比缩放示例
2014/04/28 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
JavaScript实现瀑布流布局
2020/06/28 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
JSONP基础知识详解
2017/03/19 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
python实现网站的模拟登录
2016/01/04 Python
python3 模拟登录v2ex实例讲解
2017/07/13 Python
python实现图像识别功能
2018/01/29 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
详解Python if-elif-else知识点
2018/06/11 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
两种CSS3伪类选择器详细介绍
2013/12/24 HTML / CSS
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
个人求职信范文分享
2013/12/13 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android
Python实现信息管理系统
2022/06/05 Python