python 定义方法的参数带有*和**的区别

python 定义方法时,会出现某些传入参数的数量不确定的情况,此时需要使用到这两种符号来处理:

例如:定义一个累加器,输入的参数数目可变的情况(*)

一般定义方法时为以下的方式,

两个数字累加:

def add(param1, param2):
    print(param1+param2)

三个数字累加:

def add(param1, param2, param3):
    print(param1+param2+param3)

现在可以使用*来处理这个问题:

def add(*params):
    sum = 0
    for item in params:
        sum += item
    print(sum)

调用此方法:add(1, 2, 3, 4)

另外,还有另一种传参的方式
现在有一数组:arr = [1, 2, 3]

调用方法:add(*arr)

注意:传入的params参数可为空,则add()返回就是0


例如:定义录入学校人员的身份信息的方法,由于学生有成绩信息,老师有职称、工资等信息;所以定义方法时不能确定输入的参数名,此时可以使用**来定义参数名(**)

def addInfo(name, age, **others):
  info = "name: %s, age: %s" % (name, age)
  for item in others:
    info = info + ", " + item + ": %s" % others[item]
  print(info)

调用此方法:addInfo("小明", 12, score=98)

另外,调用此方法还有另一种方式:

现在有一字典值:data = {"score": 96, "subject": "语文"}

调用方法:addInfo("小明", 12, **data)

 

上面用到*和**来传入数组和字典的方式,相当于把数组和字典里面的项解析出来逐个传入到方法中,对于接受到的不确定的数组变量和字典变量,这种方式的传参是很有用的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值