一、元组拆包(元组解包、迭代解包)
元组拆包可以应用到任何可迭代对象上(任何迭代对象),被可迭代对象中的元素数量必须要跟接受这些元素的元组的空档数一致。也可以使用用 * 来表示忽略多余的元素。
一般的迭代对象分为:元组,列表,字典,字符串等。如果有一些不能明确的对象,可以通过以下方式进行判断,是否为可迭代。
1、被迭代元素数量和接受元素的参数数量一致
2、数量不一致时,使用*号忽略多余的元素
3、嵌套元组
4、使用占位符 _
二、python拆包
*args和 **kwargs是在python的代码中经常用到的两个参数,初学者对这两个参数的理解可能仅仅限于*args是用于接收多余的未命名参数,**kwargs用于接收实参中的命名参数,其中args是一个元组类型,而kwargs是一个字典类型的数据。 其实这两个参数还涉及到了python中的一个重要的知识点:拆包
1、*args
理解这段代码需要把握住下面几点:
1.形参中的*args其实真正接收数据的args,它是一个元组,把传进来的数据放在了args这个元组中。
2. 函数体里的args依然是那个元组,但是*args的含义就是把元组中的数据进行拆包,也就是把元组中的数据拆成单个数据。
3. 对于args这个元组,如果不对其进行解包,就将其作为实参传给其它以*args作为形参的函数时,args这个元组会看看作一个整体,作为一个类型为元组的数据传入。
2、**kwargs