python参数种类_Python学习--方法的参数分类

python中定义方法的参数主要有四种:

1、普通参数:

普通参数非常普遍。

deff1(name, age):print('my name is %s, i am %s years old' % (name, age))

name和age就是两个普通的参数。在调用方法f1时,一定按照定义时的顺序依次传入name和age两个实参。

f1('Andy', 21)

2、默认参数:

默认参数是指在定义方法是给某个形式参数一个默认的值。

def f2(name, age, home='Shanghai'):print('my name is %s, i am %s years old, i come from %s' % (name, age, home))

在调用该方法时,如果不传递实参,则该参数的实参是定义方法时指定的值,如果调用时传递了实参,则这个参数的值就是传递的值。

f2('an', 21)

>>>my name is an, i am 21 years old, i come from Shanghai

f2('an', 21, 'Jiangxi')

>>>my name is an, i am 21 years old, i come from Jiangxi

在定义这种方法时一定要把带有默认值的参数放在参数列表的最后。

3. 指定参数

指定参数方法的定义和普通方法无异,在传递实参时不必非得按照定义的参数顺序传递,但是要指定传递的实参是给哪个形参的,其形式如下:

f1(age=21, name='an')

>>>my name is an, i am 21 years old

4. 可变参数

可变参数的意义是传递的实参个数是没有个数限制的,0个到n个参数都可以。它的形式是:

def calc(*args):

s = 0

for i in args:

s +=i

print(s)

所以我们在调用的时候就可以传入0个或多个实参了,这些参数在函数调用的时候被组装为一个tuple。

calc(1, 2, 3)

如果事先拿到的数据就是一个list或者tuple怎么办呢?我们可以在list或者tuple的的实参前面加上*号把它们转化为可变参数:

num = (3,4,5)

calc(*num)

num2 = [4,5,7]

calc(*num2)

5. 关键字参数:

关键字参数的参数前面有两个*号,可以传递0个或多个参数进去,这些参数在函数调用时被组装成一个dict。

示例中我们可以只传递必须的函数name和age,打印出的kwargs是一个空的dict。

def student(name, age, **kwargs):print('name:',name,'age:',age, 'other:', kwargs)

student('小米', 15)

>>>name: 小米 age: 15 other: {}

传递多个关键字参数

student('小米', 15, city='Beijing', grade=3)

name: 小米 age:15 other: {'city': 'Beijing', 'grade': 3}

如果事先有一个dict的话,我们可以类似与可变参数的传值方式传递实参:

kw = {'city': 'Beijing', 'grade': 3}

student('小米', 15, **kw)

6.组合参数

组合参数是以上5种形式的不同组合,定义的顺序是:必选参数,默认参数,可变参数和关键字参数。

小结:

在使用默认参数时,参数一定要用不可变对象,使用可变参数会出现错误。

*args传入的是一个tuple。

**kw 传入的是一个dict。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值