# 组合数据类型

每种组合数据类型都是一个类。组合数据类型包括:

  • 序列类型
  • 集合类型
  • 映射类型

# 函数参数

# 位置参数和关键字参数

# 使用元组传参

可变参数只能在参数列表的最后,通过参数前加 * 实现,内部类型为元组 (tuple) 类型。下面是一个简单的例子。

dev vfunc (a, *b):
    print(type(b))
    for n in b:
        a += b
    return a

# 使用字典传参

使用字典传参不需要再定义时指定参数个数和名称,通过 ** 实现。其收集所有未匹配的关键字参数,因此不会与 * 重复。

def g(**kwargs):
    print(type(kwargs))
    print(kwargs)
g()
g(PKU="北京大学", RUC="中国人民大学", THU="清华大学")

也可以直接传入 **<dict> , 就相当于将字典中的每个 pair 作为关键字参数传入函数。

my_dict = {"name":"zhangsan", "age":32}
temp(**my_dict)

如果精通这两个接口,大概就可以写一些很容易兼容的框架。