美文网首页
函数之参数详解

函数之参数详解

作者: 闲云野鹤_23dd | 来源:发表于2021-01-09 17:24 被阅读0次

    函数之参数详解

    2020-09-25 Reads 4

    位置入参

    函数调用时,实参默认按位置顺序传递,需要个数和形参匹配。按位置传递的参数,称为:“位置参数”。
    形参: 就是方法中声明的参数
    实参: 调用方法时传入的参数

    `# 方法定义
    def str_form1(name,age):
    return "我是{},我今年{}岁了".format(name,age)

    方法调用

    str_form1("小明",18) # 参数必须和定义的时候位置和个数保持一致

    错误示范

    str_form1("小明")
    str_form1("小明",18,8)`

    默认参数

    方法中 声明了默认参数,调用方法时 不传参就是用默认参数

    `def str_form2(name='小红',age=18): # 给age设置默认值18
    return "我是{},我今年{}岁了".format(name,age)

    str_form2(name="小明") # 未传递小明的年龄,则使用方法定义时给定的默认值`

    如果位置参数和关键字参数同时存在,位置参数在前,关键字参数在后:

    `def str_form3(name,age=18): # 必须位置参数在前,关键字参数在后
    return "我是{},我今年{}岁了".format(name,age)

    str_form3("小明",age=18) # 必须位置参数在前,关键字参数在后`

    关键字入参

    使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值

    `def str_form4(name,age):
    return "我是{},我今年{}岁了".format(name,age)

    str_form4(age=18,name="小明") # 传递参数时,使用关键字来指定参数`

    </pre>

    不定长参数 (可变参数,魔法参数)

    不定长参数 分两种情况:

    • *param(一个星号),将多个参数收集到一个“元组”对象中。
    • **param(两个星号),将多个参数收集到一个“字典”对象中。

    注意: 方法声明不定长参数时,最好param在倒数第一位,param在第二位,如果没有param,那param最好在倒数第一位

    例子:

    `def foo(name,*args, **kwargs):
    print('name =',name)
    print('args = ', args)
    print('kwargs = ', kwargs)
    print('---------------------------------------')

    if name == 'main':
    foo('ming',1, 2, 3, 4)
    foo('ming',a=1, b=2, c=3)
    foo(1, 2, 3, 4, a=1, b=2, c=3)
    foo('a', 1, None, a=1, b='2', c=3)`

    运行结果:

    name = ming
    args =  (1, 2, 3, 4)
    kwargs =  {}
    ---------------------------------------
    name = ming
    args =  ()
    kwargs =  {'a': 1, 'b': 2, 'c': 3}
    ---------------------------------------
    name = 1
    args =  (2, 3, 4)
    kwargs =  {'a': 1, 'b': 2, 'c': 3}
    ---------------------------------------
    name = a
    args =  (1, None)
    kwargs =  {'a': 1, 'b': '2', 'c': 3}
    ---------------------------------------
    
    

    强制位置参数 和 强制关键字参数

    Python3.8 新增了一个函数形参语法 / 用来指明函数形参必须使用指定位置参数,不能使用关键字参数的形式。
    / :/ 左边的参数必须位置入参

    • : * 右边的参数必须关键字入参

    def f(a, b, /, c, d, *, e, f):
    print(a, b, c, d, e, f)

    正确的例子

    f(10, 20, 30, d=40, e=50, f=60)

    错误的例子

    f(10, b=20, c=30, d=40, e=50, f=60) # b 不能使用关键字参数的形式
    f(10, 20, 30, 40, 50, f=60) # e 必须使用关键字参数的形式`

    相关文章

      网友评论

          本文标题:函数之参数详解

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