python几个常见的参数

1. 默认参数

就是给参数一个固定值,比如power(x,n=2),中n=2就是默认参数的含义。

2. 位置参数

按照位置依次赋值,比如power(x,n)中,x、n都是位置参数

3. 可变参数

就是将传入值作为一个list或者tuple传入,比如

def cacl(numbers):
	sum =0
	for n in numbers:
		sum=sum+n*n
	return sum
#调用该函数
cacl([1,2,3])
	
#使用可变参数*numbers
def cacl(*numbers):
	sum =0
	for n in numbers:
		sum=sum+n*n
	return sum
#调用该函数
cacl(1,2,3)

需要注意的是,可变参数接受的到的是一个tuple类型的数据,当存在一个list或者tuple时想要调用可变参数只需要在该list或者tuple之前加上一个*即可,比如:

nums=[1,2,3]
cacl(*nums)

*nums表示吧nums这个list的所有元素作为可变参数传进去,这种写法相当有用,且十分常见。

当然,你也可以写成

nums=[1,2,3]
cacl(num[0],num[1],num[2])

4. 关键字参数

可变参数允许你传入0个或者任意个参数,这些可变参数在函数调用时自动组装成一个tuple,而关键字参数允许你传入0个或者任意个含参数名的参数,这些关键字参数在函数内部自动组装成一个dict。

比如:

def person(name,age,**kwargs):
	print('name:',name,'age:',age,'other:',kw)
调用
person('bob',35,city='beijing')
输出结果
name:bob,age:35,other:{'city':'beijing'}

5. 命名关键字参数

如果要限制关键字参数的名字,就可以使用命名关键字参数,例如,只接收city和job作为关键字参数,这种方式定义的函数如下:

def person(name,age,*,city,job):
	print(name,age,city,job)
	与关键字参数**kw不同的是,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为是命名关键字参数

调用方式:
person('jack',24,city='beijing',job='engineer')
输出:jack 24 beijing engineer
命名关键字参数必须传入参数名,这和位置参数不同,如果没有传入参数名,调用将会报错。因为不传入参数名的话,python解释器会将这四个参数均视为位置参数,但person()函数仅接受2个位置参数

此外,命名关键字参数还可以有缺省值,从而简化调用:
def person(name,age,*,city='beijing',job):
	print (name,age,city,job)

特别注意的是,*不是参数,而是特殊分隔符,如果缺少*,Python解释器将无法识别命名关键字参数和位置参数。

6. 参数组合

def func(a,b,*args,**kwargs):
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值