美文网首页
python 中 *args **kwargs使用注意

python 中 *args **kwargs使用注意

作者: lsdir | 来源:发表于2019-03-17 15:00 被阅读0次

    发现python的*args和**kwargs确实让函数突破了函数接受参数个数的限制,可以不用明文列出来但是用户可以无限输入多个参数。在很多教程中,我们都着重了讲了这类参数可以在函数类作为一个List来迭代遍历出所有参数,而在调用上,只是简单的在函数()参数列表中填入多个参数来说明。

    但是有一种情况,如果我们参数元素用一个变量(list)来表示,那应该如何套入进去呢?

    def test(*args):

         for i in args:

             print(i)

    params_data=[1,2,3,4]

    test(1,2,3,4)  我们可以理解,很多认为是 test(params_data), 因为这样是传入了一个列表,然后args也是当做一个列表来用,看样子很合逻辑,但是实际不是这样的,函数中会将params_data整体当作一个参数,而不是4个,如果要当作4个参数的话,应该怎么操作呢? 应该传递列表的地址,如下:

    test(*params_data)

    这是这几天编程的时候容易犯的一个错,记在这里防止下次又忘记了

    相关文章

      网友评论

          本文标题:python 中 *args **kwargs使用注意

          本文链接:https://www.haomeiwen.com/subject/mtdumqtx.html