• 动态参数


    # 位置参数:不能很好的控制参数的数量,参数数量多需要写很多,而且必须一一对应
    def eat(staple_food, cold_dish, drink, ice_cream):
    print("I want eat", staple_food, cold_dish, cold_dish, drink, ice_cream)
    # eat("盖浇饭", "馒头", "腊肠", "橙汁", "哈根达斯") # TypeError: eat() takes 4 positional arguments but 5 were given
    eat("鱼香肉丝盖浇饭", "凉皮", "可乐", "老北京冰棍")


    # 动态参数
    # 动态接收位置参数
    # 顺序: 位置参数 => *args(arguments) => 默认值参数
    # * 在这里表示接收位置参数的动态传参, 接收到的是元组
    def eat(name, *food, location="Beijing"): # 参数名是food *表示动态传参
    print("in", location, name, "want eat", food)
    eat("xiaogaokui", "狗不理", "大麻花", location="Tianjin")
    eat("wangxiaoming", "大米饭", "可乐")
    eat("big DS", "馒头")
    # 动态接收关键字参数
    def eat(*args, **kwargs): # 无敌传参
    print(args, kwargs)
    eat(good_food="狗不理", no_good_food="汉堡", drink="大白梨", ice_cream="巧乐兹")


    # 传递顺序
    # 位置参数, *args, 默认值参数, **kwargs

    # 参数分类
    # 实际参数:
    # 位置参数
    # 关键字参数
    # 混合参数(位置, 关键字)
    # 形式参数:
    # 位置参数
    # 默认值参数
    # 动态传参:
    # *args: 位置参数动态传参
    # **kwargs: 关键字参数动态传参

    def fun(a, *args, c="哈哈", **kwargs):
    """参数传递顺序测试"""
    print(a, args, c, kwargs)
    fun(1, 2, 3, 4, 5, 6)


    # 注释分类
    # 单行注释
    # '''多行注释'''
    # 函数注释
    # def func(a, b):
    # """
    # 这个函数是用来计算a和b的和
    # :param a: 第一个数据
    # :param b: 第二个数据
    # :return: 返回的是两个数的和
    # """
    # return a + b
    #
    # print(func.__doc__) # document文档

    # 接收所有参数
    def func01(*args, **kwargs):# 无敌 *args相当于一个聚合的作用
    print(args, kwargs)
    # func01(1, 2, 3, t = 6, 4, 5, a=6, b=7, c=9) # SyntaxError: positional argument follows keyword argument
    func01(1, 2, 3, 4, 5, a=6, b=7, c=9)


    # * 不同位置,不同作用
    # 形参: 聚合
    def func02(*food): # 聚合, 位置参数
    print(food)
    # 实参: 打散
    lst = ["鸡蛋","煎饼果子","猪蹄","滋滋冒油"]
    func02(*lst) # 打散. 把list, tuple, set, str 进行迭代打散
    # 聚合成关键字参数
    def func(**kwargs):
    print(kwargs)
    dic = {"name":'alex', 'age':'18'}
    func(**dic) # 打散成关键字参数

     

  • 相关阅读:
    收集的正则表达式
    全面解析JavaScript中“&&”和“||”操作符(总结篇)
    3.5 二叉查找树的几何应用
    3.4 散列表
    3.3 平衡查找树
    3.2 符号表之二叉查找树BST
    3.1 符号表之二分查找
    2.7 二叉堆及优先队列
    2.6 经典排序算法总结
    2.5 3-way quickSort
  • 原文地址:https://www.cnblogs.com/xiaogaokui/p/10733937.html
Copyright © 2020-2023  润新知