python关键字参数和非关键字参数_Python关键字参数与非关键字参数(可变参数)详解...

关键字参数与非关键字参数(可变参数)详解

学过php或者其他语言的同学都知道,php里面的参数不是个数不是可变的(只是很多时候是可以省略的,因为在函数定义的时候为参数设置了默认值)。但是在python里却不是这样,python里面运行可变参数的出现,参数中出现(*arg,**arg2)的形式。

今天我们来详解一下这种用法:

例如:

def foo1(arg1,arg2,key1=1,key2=2,*arg,**keywords):

print "arg1 parameters is ",arg1

print "arg2 parameters is ",arg2

print "key1 parameter is ",key1

print "key2 parameter is ",key2

print "Arbitrary parameter is ", arg

print "keywords parameter is ",keywords

foo1(1,2,3,4,5,6,k1=1,k2=2,k3=3)

输出:

arg1 parameters is  1

arg2 parameters is  2

key1 parameter is  3

key2 parameter is  4

arg parameter is  (5, 6)

keywords parameter is  {'k3': 3, 'k2': 2, 'k1': 1}

函数参数分为四部分:

arg1,arg2,key1,key2普通参数

*arg 非关键字参数列表

**keywords 关键字参数列表

函数声名部分,参数的四个部分不可颠倒位置,可以没有其中某几部分。

python函数的这种特性使得函数参数更加灵活,参数个数也不受限制。

注意:这种用法常用在python的装饰器中,至于什么是装饰器,它是python里面非常重要的一个特性,我会在以后详解

文章转自:http://www.pythontab.com/html/2012/pythonjichu_1224/54.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值