美文网首页
可变参数:* 和 ** 区别

可变参数:* 和 ** 区别

作者: 黑羽肃霜 | 来源:发表于2016-10-23 15:28 被阅读34次

代码示例

先说一个*号

def function(x,*y):
    sum = 0 #接收的变量要先定义一个初始值
    for h in y:
       sum = sum + h
    sum = sum + x
    print sum
    return sum

num1 = {1:8,2:9.0,30:3}
num2 = (5,)
num3 = [6]
num4 = [1,3.0,6]
num5 = [] #num =None ,用None Type是不允许的
function(10,*num1)
function(10,*num2)
function(10.58,*num3)
function(10,)
function(10,*num4)
function(10,*num5)
# error ,y=2不可以直接传给*y#
function(x=1,y=2) 

代码说明了几个问题

  • 函数原型中的 *y 参数,可以接收的范围包括: list, tuple, dict, 数据类型(int 或 float都行), 这些序列都可以为空,但是不能传入None类型 , dict 只会在key值为数据类型时,把key值相加
  • 如果去打印,可以看到 *y接收近来的数据会自动转换成一个元组类型 tuple,也就是说在for h in y时,是从y这个元组里取数据,输出结果
  • 可变参数 *y 是可以包含空序列的()
  • 不能直接将序列传入,也就是说,类似于 function(10, (1,2,3)) 或 function(10,[1,2,3]) 是不允许的, 但是可以调用 function(10)或function(10,)来表示空。结果如图:
示意图

** 两个型号表示“关键字传递”,毫无疑问是针对字典dict

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

person('Mike',28)
person('Mike',28,key="value")
person('Mike',28,key="value",A=7)
  • 如图上面 *y 一样,**也可以传递空的字典
  • **kw支持多个Key:value输入,中间用逗号隔开。
    因为dict是无序序列,因此输出时候不会按照你输入的key排列,下列输出效果所示(和输入相反)
日志打印

相关文章

  • 可变参数:* 和 ** 区别

    代码示例 先说一个*号 代码说明了几个问题 函数原型中的 *y 参数,可以接收的范围包括: list, tuple...

  • Python中值得关注的一些知识点

    可变/不可变类型导致的差别,以及a+=a和a = a+a的区别 可变和不可变类型作为参数 先来看一个例子: 上述例...

  • sort&sorted

    一、区别: sort()是可变对象(字典、列表)的方法,无参数和返回值,会改变可变对象,不可变对象如果调用会返回一...

  • 可变参数和不可变参数

    可变参数:列表,集合,字典 结论:函数传递可变参数时,会将包括索引在内的整体传递进去,当函数内部对参数进行修改时,...

  • 函数的,参数,变量作用域,递归,匿名函数

    一:函数参数的介绍 1:可变和不可变参数 1.1:必选参数 1.2:默认参数 1.3:可变参数 1.4:关键字参数...

  • 0505-0512学习总结

    上周在学习函数,终于知道return和print的区别以及他们应该放置的位置,函数的循环体。以及可变参数和不可变参...

  • python函数回顾

    1.参数的介绍 (1)可变和不可变参数 (2)必选参数 (3)默认参数 (4)可变参数 (5)关键字参数 1.1....

  • 4.浅拷贝与深拷贝

    可变(mutable)参数和不可变(immutable)参数 在Python中string、tuple和numbe...

  • 元组、字典可变参数

    可变参数 需求: 参数数量不确定,能否接收? args元组可变参数 kwargs字典可变参数 传递可变参数

  • python知识补充点积累

    1、python的位置参数、默认参数、关键字参数、可变参数区别 位置参数:调用函数时根据函数定义的参数位置来传递参...

网友评论

      本文标题:可变参数:* 和 ** 区别

      本文链接:https://www.haomeiwen.com/subject/czkkuttx.html