python传递参数方式小结

 更新时间:2015年04月17日 16:08:38   作者:走向星辰大海  
这篇文章主要介绍了python传递参数方式,实例总结了Python常用的参数传递方式,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例总结了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 beautifulsoup4 模块详情

    python beautifulsoup4 模块详情

    本文主要介绍了python beautifulsoup4模块详情,BeautifulSoup4是一款python解析库,主要用于解析HTML和XML,在爬虫知识体系中解析 HTML 会比较多一些,下文更多相关内容,需要的小伙伴可以参考一下
    2022-05-05
  • 不管你的Python报什么错,用这个模块就能正常运行

    不管你的Python报什么错,用这个模块就能正常运行

    说到python强大的地方,那真是太多了,优雅、简洁、丰富且强大的第三方库,开发速度快,活跃度高等,本文讲到的就是其中一个模块,用了它,再也不用担心代码不能运行了
    2018-09-09
  • Python图像处理库PIL的ImageEnhance模块使用介绍

    Python图像处理库PIL的ImageEnhance模块使用介绍

    这篇文章主要介绍了Python图像处理库PIL的ImageEnhance模块使用介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • [项目布局配置]Nosql与PythonWeb-Flask框架组合

    [项目布局配置]Nosql与PythonWeb-Flask框架组合

    本文主要描述了怎样使用轻量级NoSQL数据库与PythonWeb-Flask框架组合来进行项目布局及应用配置,需要的同学可以参考下,希望可以对大家有所进益
    2021-08-08
  • python中第三方库pyecharts的使用详解

    python中第三方库pyecharts的使用详解

    这篇文章主要介绍了python中第三方库pyecharts的使用, pyecharts的作用是用来做数据图表,本文给大家介绍了作图的步骤及实例代码,需要的朋友可以参考下
    2022-08-08
  • 对python判断是否回文数的实例详解

    对python判断是否回文数的实例详解

    今天小编就为大家分享一篇对python判断是否回文数的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • python如何实现复制目录到指定目录

    python如何实现复制目录到指定目录

    这篇文章主要为大家介绍了python如何实现复制目录到指定目录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • python调用jenkinsAPI构建jenkins,并传递参数的示例

    python调用jenkinsAPI构建jenkins,并传递参数的示例

    这篇文章主要介绍了python调用jenkinsAPI构建jenkins,并传递参数的示例,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-12-12
  • Python入门教程之Python的安装下载配置

    Python入门教程之Python的安装下载配置

    这篇文章主要介绍了Python入门教程之Python的安装下载配置,Python是一门非常强大好用的语言,也有着易上手的特性,本文为入门教程,需要的朋友可以参考下
    2023-04-04
  • Python定义函数时参数有默认值问题解决

    Python定义函数时参数有默认值问题解决

    这篇文章主要介绍了Python定义函数时参数有默认值问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论