位置参数
<font color="#55beed"><b>位置参数</b></font>:声明函数时按位置声明的参数。(在传参过程中,系统会默认按照位置把实参赋值到形参)
默认值参数
<font color="#55beed"><b>默认值参数</b></font>:函数在声明的时候, 已给出函数参数默认值的参数。<br>
默认值参数,在调⽤的时候可以给出具体的值, 也可以不给值, 使⽤默认值。
当声明多个参数时,必须先声明位置参数, 才能声明默认值参数。
def stu_info(<font color="#99ff99">chat</font>, <font color="#99ff99">address</font>, <font color="#ffff99">sex='男'</font>, <font color="#ff99cc">name, age</font>): # <font color="#ff99cc">non-default argument follows default argument</font>
stu_info(<font color="#99ff99">"微信"</font>, <font color="#99ff99">"北京"</font>, <font color="#ffff99">'女'</font>, <font color="#ff99cc">"李思思", 20</font>)
动态传参
动态接收位置参数
形参中用<font color="#ff99cc">*args</font>来表示动态接收位置参数
<font color="#99ff99">位置参数</font> > <font color="#ffff99">默认值参数</font> > <font color="#ff99cc">*args</font> :默认值不生效,默认值参数只有当实参等于默认值的时候默认值参数才生效,发挥不了默认效果。
<font color="#99ff99">位置参数</font> > <font color="#ff99cc">*args</font> > <font color="#ffff99">默认值参数</font>:默认值生效,想要改默认参数值就通过关键字传参,不想改就用默认值。
def chi(<font color="#99ff99">a, b</font>, <font color="#ff99cc">*food</font>, <font color="#ffff99">c="娃哈哈"</font>):
chi(<font color="#99ff99">"⾹蕉"</font>, <font color="#99ff99">"菠萝"</font>, <font color="#ff99cc">"葫芦娃"</font>, <font color="#ff99cc">"⼝罩"</font>) # <font color="#99ff99">⾹蕉 菠萝</font> <font color="#ff99cc">('葫芦娃', '⼝罩')</font> <font color="#ffff99">娃哈哈</font>
当声明多个参数时,必须要有:位置参数 > *args > 默认值参数
动态接收关键字参数
形参中用<font color="#99ffff">**kwargs</font>来表示动态接收关键字参数
<font color="#99ff99">位置参数</font> ><font color="#ff99cc"> *args</font> > <font color="#ffff99">默认值参数</font> > <font color="#99ffff">**kwargs</font>:最终顺序
def chi(<font color="#99ff99">a<font color="#ffffff">, </font>b</font>, <font color="#ff99cc">*args</font>, <font color="#ffff99">c='馒头'</font>, <font color="#ffff99">d='黄焖鸡'</font>, <font color="#99ffff">**kwargs</font>):
chi(<font color="#99ff99">"⾹蕉"</font>, <font color="#99ff99">"菠萝"</font>, <font color="#ff99cc">"葫芦娃", "⼝罩", "红烧肉"</font>, <font color="#ffff99">d="⼤⽶饭"</font>, <font color="#99ffff">e="⼩⽶饭", f="⻩⽠", g="茄⼦", h='可乐'</font>)
#<font color="#99ff99">⾹蕉 菠萝</font> <font color="#ff99cc">('葫芦娃', '⼝罩', '红烧肉')</font> <font color="#ffff99">馒头 ⼤⽶饭</font> <font color="#99ffff">{'e': '⼩⽶饭', 'f': '⻩⽠', 'g': '茄⼦', 'h': '可乐'}</font>
当声明多个参数时,必须要有:位置参数 > *args > 默认值参数 > **kwargs
动态参数的另⼀种传参方式
<font color="#ff99cc"><b>func(*list)或func(*str)</b></font>:把列表或字符串等可迭代对象按顺序打散传参。
def <font color="#ffff99">fun(*args)</font>:<br> print(args)<br><br>lst = [1, 4, 7]<br><font color="#ffff99">fun(*lst)</font> # 可以使⽤*把⼀个列表按顺序打散<br>
<font color="#ff99cc"><b>func(**dict)</b></font>:把字典按顺序打散传参。
def <font color="#ffff99">fun(**kwargs)</font>:<br> print(kwargs)<br><br>dic = {'a':1, 'b':2}<br><font color="#ffff99">fun(**dic)</font><br>