• 技术文章 >常见问题 >Python常见问题

    python如何传入不定长参数

    silencementsilencement2019-09-29 15:24:50原创2461

    刚开始接触Python时,向函数传递最多的为对应参数,所谓说的一个萝卜一个坑

    1

    2

    def test_arg(a,b):

        print(a,b)

    渐渐地发现,在定义函数时,我们并不知道函数调用的时候会传递多少个参数,这个就是今天主题提出的问题,即向函数传递不定数量的参数

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    def test1_var_args(*arg2):

        print("test1_var_args")

        print(arg2)

     

    def test2_var_arg(**arg):

        print("test2_var_args")

        print(arg)

     

    def test3_var_args(arg1,*arg2):

        print("test3_var_args")

        print(arg1)

        print(arg2)

     

    def test4_var_args(arg1,**arg2):

        print("test4_var_args")

        print(arg1)

        print(arg2)

     

    def test5_var_args(arg1,*arg2,**arg3):

        print("test5_var_args")

        print(arg1)

        print(arg2)

        print(arg3)

     

    def test6_var_args(arg1, arg2="moren",*arg3, **arg4):

        print("test6_var_args")

        print(arg1)

        print(arg2)

        print(arg3)

        print(arg4)

     

    if __name__=="__main__":

        test_arg(1,2)

        test1_var_args()

        test1_var_args(1,2,3,4)

     

        test2_var_arg()

        test2_var_arg(a="1",b='2')

     

        test3_var_args(1)

        test3_var_args(1,2,3,4)

     

        test4_var_args(1,a="2",b="3")

     

        test5_var_args(1,2,3,4,a="5",b="6")

     

        test6_var_args(1,a="2",b="3" ,c="4")

        test6_var_args(1, arg2="3", c="4")

     

    #结果

    test1_var_args

    ()

    test1_var_args

    (1, 2, 3, 4)

     

    test2_var_args

    {}

    test2_var_args

    {'a': '1', 'b': '2'}

     

    test3_var_args

    1

    ()

    test3_var_args

    1

    (2, 3, 4)

     

    test4_var_args

    1

    {'a': '2', 'b': '3'}

     

    test5_var_args

    1

    (2, 3, 4)

    {'a': '5', 'b': '6'}

     

    test6_var_args

    1

    moren

    ()

    {'a': '2', 'b': '3', 'c': '4'}

    test6_var_args

    1

    3

    ()

    {'c': '4'}

    上述例子可知:

    前面带有 *表示为一个不定数量的元组参数,默认是()

    前面带有**表示为一个不定数量的字典参数,默认是{}

    多种参数混合使用时,需要注意顺序,一般为先位置、再关键字、再不定数量的元组参数、再不定数量的字典参数

    特别注意的是,当前带有不定参数的函数传递列表或者字典时,切记,一定要解包否则报错

    1

    2

    3

    lis=[1,2,3]def parse(*args):

        for i in args:

          print(i)parse(*lis)#解包

    更多学习内容,请点击Python学习网。

    专题推荐:参数
    上一篇:python的list怎么取后几个元素 下一篇:python变量不等号是什么

    相关文章推荐

    • 详解python中函数的参数传递• python的函数如何接收参数

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网