python 函数的参数

函数的参好几种类型:位置参数、默认参数、可变参数、关键字参数、命名关键字参数。这些参数可以混合使用,但是顺序不能变。

位置参数

举个例子:

def my_power1(x,n):
    return x**n

其中,x和n就是位置参数,在函数调用时必须传入这两个值。

默认参数  (默认参数必须指向不变对象!list是可变的,因此默认参数不可以指向list。)

举个例子:

def my_power2(x,n=2):
    return x**n

其中,x是位置参数,n是默认参数,当函数被调用时,可以传入n的值,也可以不传入n的值。不传入时,默认为2。

可变参数

可变参数就是说,传入的参数的个数是可变的,可以是0个,1个,2个....

举个例子:

def my_calc(*numbers):    #求取传入的所有参数的平方和
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum

此时,参数numbers前边加上了*,表示这是一个可变参数,这些可变参数在函数调用时自动组装成一个tuple。

关键字参数

关键字参数允许传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装成一个dict。

举个例子:

def person(name,age,**kw):
    print('name:',name,'age:',age,'other;',kw)

在函数调用时,可以只传入name和age,也可以在传入name和age的同时传入其他参数。

调用及结果:

>>>person('Bob',10)
name:Bob age:10 other:{}
>>>person('Bob',10,city='Beijing')
name:Bob age:10 other:{'city':'Beijing'}
>>>person('Bob',10,city='Beijing',sex='Man')
name:Bob age:10 other:{'city':'Beijing','sex':'Man'}

命名关键字参数

对于关键字参数,函数的调用者可以传入不受限制的关键字参数,但是命名关键字参数可以限制关键字参数的名字,只接收特定的关键字参数。

举个例子:

def person(naem,age,*,job,city):
    print(name,age,job,city)

使用*作为特殊分隔符,*后边的参数被视为命名关键字参数。在调用时,命名关键字参数要将参数名一起写出来。

调用及结果:

>>>person('Jack',24,job='Engineer',city='Beijing')
Jack 24 Engineer Beijing

ps:不是很懂为什么要有命名关键字参数,调用时也不能省



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值