不定长参数(*/**)

不定长参数定义:也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景

不定长参数作用:当调用函数不确定参数个数时,可以使用不定长参数

不定长指的是参数的数量,数量可以是任意的

不定长参数的类型:

1.位置传递 (标志性符号为:*   ,格式*不定长参数/形参)

2.关键字传递(标志性符号为:**,格式**不定长参数/形参)

def a(*b)              带上*,表明形参b它所接收的数量是无限的(数量可为单个也可以为多个),当我们使用不定长传递的时候,b这个形式参数,就会默认标记为元组类型,当传递不定长参数(传实参)的时候,通常都会存储到元组内部(这一部分为原理,解释作用),所以我们可以以元组的形式去调用,所以b也可以叫做元组。

b的实参可以为0个,也可以为无限个。

带个*,b形式参数,b的实参为单个时,调用函数的时候,就显示一个值;b的实参为多个时,调用函数的时候,就展示多个值,形参b的类型就是以元组的形式存储了

def a(*d):

      print(d)

a(1,2,3)

1,2,3

通过*得到的不定长,那么这种不定长我们叫做位置传递


def a(**b) 

通过**得到的不定长,这种叫关键字传递,它的实参不受限制,可以一个也可以多个,同时也必须满足key=值的这种键值对的形式,传实参的时候,按照要求:key=value这种方式传递(调用函数,实参按照这种方式写代码)。比如实参b("你好"=11),传入的时候(调用函数),(形参b的类型)就形成字典了。

def a(**d):

       print(d)

a(c="你好",e="我们")

{c="你好",e="我们"}

还有一种方式,通过字典的方式去定义:

def a(**d):

e={"你好"=22,"我们"=11}

a(**e)                          #如果是以"e"字典的形式,那么调用的时候需要加上(**e),带上**,说明是解包的意思,这个是语法规则,也可以这么理解

{"你好"=22,"我们"=11}



12.19  二

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容