python函数参数传递类_简述Python3中三种函数参数传递类型

本文通过实例讲解了Python3中的三种函数参数传递类型:可变参数(*args)、关键字参数(**kwargs)以及命名关键字参数。可变参数允许传入任意个数的参数,自动组装为元组;关键字参数则组装为字典,方便通过键值访问;命名关键字参数用于限制只接受特定关键字参数,确保参数调用的规范性。
摘要由CSDN通过智能技术生成

在这篇博文中,我们会使用sum()和information()作为例子来如何正确地向函数传入参数

可变参数(*args)

所谓可变参数,是其指参数的个数可变,这对于多次在给一个函数传入非固定个数参数的场景来说十分的好用。(看到这里有疑问?看下面的例子---->>>>)

首先看一个比较麻烦的写法:

sum()函数接收多个整数,然后对这些整数进行求和,返回求和的结果。所以要给sum()传入多个数字,一种可能的方法如下:

list1 = [1,2,3,4]

list2 = [1,2,3,4,5]

def sum(list):

result = 0

for i in list:

result += i

return(result)

print(sum(list1))#10

print(sum(list2))#15

有一点需要注意的是,使用上述sum()的时候,需要首先定义一个列表,这样的写法比较麻烦,如果使用可变参数的方法就可以使得代码更加简洁,可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时会自动组装为一个元组(tuple)。

def sum1(*list):

result = 0

for i in list:

result += i

return(result)

print(sum1(1,2,3,4)) #10

print(sum1(1,2,3,4,5)) #15,无需再定义新的列表

关键字参数(**kwargs)

与可变参数类似,关键字参数也可以传入非固定个数的参数,但是与之不同的是,关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个字典(dict)。

def information(**kwargs):

print("kwargs中包含:",kwargs)

information() #kwargs中包含: {}

information(age=1,name="Ben") #kwargs中包含: {'name': 'Jack', 'age': 1}

从打印的结果可以看出**kwargs是一个字典

def information1(**kwargs):

if 'age' in kwargs:

print("age:",kwargs['age'])

if 'name' in kwargs:

print("name:",kwargs['name'])

else:

pass

information1(age=1,name="Ben") #age: 1

#name: Ben

命名关键字参数(其他参数,*,命名关键字参数)

上面我们介绍的关键字参数可以传入0到任意个参数,在某些传入关键字的场景中,我们想要控制传入的关键字参数,使得只能传入指定的关键字参数,所以,我们引入命名关键字参数

def information2(age,*, name, address):

print("age:", age, "; name:", name, "; address:", address)

information2(1,name="Ben", address="somewhere,China")

#age: 1 ; name: Ben ; address: somewhere,China

传入命名关键字参数时需要注意,*后的参数都是要传入命名的参数,如上面例子中的age=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值