• python 动态参数


    # 位置传递, 只有一个*时表示元组
    def func_1(*args):
        print(args)
    
    
    func_1(1)  # (1,)
    func_1(1, 2)  # (1, 2)
    func_1(1, 2, 3)  # (1, 2, 3)
    
    list = [4, 5, 6]
    func_1(list)  # ([4, 5, 6],)
    # 关键字传递,2个**是表示字典
    def func2(**kwargs):
        print(kwargs)
    
    
    func2(a=1)  # {'a': 1}
    func2(a=1, b=2)  # {'a': 1, 'b': 2}
    func2(a=1, b=2, c=3)  # {'a': 1, 'b': 2, 'c':3}
    # *args和**kwargs一起使用
    def test_1(*args, **kwargs):
        print(args, type(args))  # (1, 2, 3) <class 'tuple'>
        print(*args)  # 1 2 3
    
        # 一个*时表示获取键值key
        print(*kwargs)  # x y z
    
        test_2(**kwargs)  # 22 33 44
    
    
    def test_2(x, y, z):
        print(x)
        print(y)
        print(z)
    
    
    test_1(1, 2, 3, x=22, y=33, z=44)
    # Demo
    def add(name, *args):
        sum = 0
        if len(args) > 0:
            for i in args:
                sum = sum + i
            print(name + " 累加和是 sum:", sum)
        else:
            print("没有元素可以计算,sum:", sum)
    
    
    add("chenming", 1, 3, 5, 6)  # chenming 累加和是 sum: 15
    # 装包,拆包
    students = {"001": ("张三", 12), "002": ("李四", 13), "003": ("王五", 14)}
    
    
    # 定义时传两个*, 就是装包
    def func_3(name, **kwargs):  # **kwargs 装包
        print("{}喜欢的角色:".format(name))
        if isinstance(kwargs, dict):
            values = kwargs.values()
            print(values)
            for name, age in values:
                print("{}的年龄是:{}".format(name, age))
    
    
    # 调用时传两个*,就是拆包
    func_3("kobe", **students)  # **students 将字典拆包
    
    """
    kobe喜欢的角色:
    dict_values([('张三', 12), ('李四', 13), ('王五', 14)])
    张三的年龄是:12
    李四的年龄是:13
    王五的年龄是:14
    """
  • 相关阅读:
    concrete maths ch4 number theory
    Aho-Corasick algorithm
    Finding repetitions
    Suffix Automaton
    Z-function and its calculation
    mongodb安装与启动
    centos redis 集群搭建
    nginx实现热部署(平滑升级)
    nacos集群部署安装
    springboot+zookeeper+dubbo整合
  • 原文地址:https://www.cnblogs.com/wakey/p/12290216.html
Copyright © 2020-2023  润新知