zoukankan      html  css  js  c++  java
  • python-----函数参数类型

    #函数参数类型:1 位置参数 2 默认参数 3 关键字参数 4可变参数 包裹位置参数*args 包裹关键字参数 **kargs
    #参数位置顺序:先位置参数,默认参数,包裹位置,包裹关键字(定义和调用都应遵循)
    #位置参数----调用函数时根据函数定义的参数位置来传递参数,参数有顺序。
    def test(name,age):
    print('名字是 %s,年龄是%s'%(name,age))
    test('lily','25')
    #>>名字是 lily,年龄是25

    #默认参数----为参数提供默认值,调用函数时可传,可不传该默认参数的值
    def test(name,age='19'):
    print('名字是 %s,年龄是%s'%(name,age))
    test('lily')
    #>>名字是 lily,年龄是19

    #关键字参数---通过“键-值”形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求。
    def test(name,age):
    print('名字是 %s,年龄是%s'%(name,age))
    test('lily',age=9)


    #可变参数---包含包裹位置传递(*args)、包裹关键字传递(**kargs),可变参数特点:参数个数不限制,但args类型元组,kargs类型字典
    #包裹位置传递:传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,

    def func(*args):
    pass

    func()
    func('a')
    func('a','b','c')

    #包裹关键字传递:kargs是一个字典(dict),收集所有关键字参数
    def func(**kargs):
    pass

    # func(a=1)
    # func(a=1, b=2, c=3)

    #解包裹参数 ----*和**

    #位置参数,默认参数,可变参数的混合使用
    #基本原则是:先位置参数,默认参数,包裹位置,包裹关键字(定义和调用都应遵循)
    def func(name, age, sex=1, *args, **kargs):
    print(name, age, sex, args, kargs)

    tuple1=('apple','orange')
    func('tanggu', 25, 2,*tuple1,c=2,d=3)
    #>>tanggu 25 2 ('apple', 'orange') {'d': 3, 'c': 2}
    #实参中传递 包裹关键字形式为“=”
    func('tanggu', 25, 2, 'music', 'sport',c=2,d=3)
    #tanggu 25 2 ('music', 'sport') {'c': 2, 'd': 3}

    #如果直接定义dict 在实际参数中传递dict,注意前加**
    dict1={'a': 1, 'b': 2,'c':3}
    func('tanggu', 25, 2, 'music', 'sport',**dict1)
    #tanggu 25 2 ('music', 'sport') {'c': 3, 'a': 1, 'b': 2}
  • 相关阅读:
    (4) 编译 Android-5.0 源码
    (3) 下载 Android-5.0 源码
    (2) 搭建 Android 系统开发环境
    npm 安装 --save-dev 与 --save的使用与区别
    一点目标
    AcWing 875. 快速幂
    Codeforces Round #604 (Div. 2)
    2019年安徽大学ACM/ICPC实验室新生赛(公开赛)D 不定方程
    C语言黑与白问题
    AcWing 92. 递归实现指数型枚举
  • 原文地址:https://www.cnblogs.com/wenchengqingfeng/p/9811290.html
Copyright © 2011-2022 走看看