• Python函数中*args和**kwargs来传递变长参数的用法


    参考自: http://www.jb51.net/article/78705.htm 

    单星号形式(*args)用来传递非命名键可变参数列表。双星号形式(**kwargs)用来传递键值可变参数列表。

    1. 传递了一个固定位置参数和两个变长参数。

    def test_var_args(farg, *args):
      print "formal arg:", farg
      for arg in args:
        print "another arg:", arg
     
    test_var_args(1, "two", 3)
    
    结果是:
    
    formal arg: 1
    another arg: two
    another arg: 3

    2.一个固定参数和两个键值参数。

    def test_var_kwargs(farg, **kwargs):
      print "formal arg:", farg
      for key in kwargs:
        print "another keyword arg: %s: %s" % (key, kwargs[key])
     
    test_var_kwargs(farg=1, myarg2="two", myarg3=3)
    
    结果是:
    
    formal arg: 1
    another keyword arg: myarg2: two
    another keyword arg: myarg3: 3

    3.  调用函数时,使用 *args and **kwargs

    def test_var_args_call(arg1, arg2, arg3):
      print "arg1:", arg1
      print "arg2:", arg2
      print "arg3:", arg3
     
    args = ("two", 3)
    test_var_args_call(1, *args)
    
    结果是:
    
    arg1: 1
    arg2: two
    arg3: 3
    
    -------------------------------------------
    
    键值对方式:
    
    def test_var_args_call(arg1, arg2, arg3):
      print "arg1:", arg1
      print "arg2:", arg2
      print "arg3:", arg3
    
     
    kwargs = {"arg3": 3, "arg2": "two"}
    test_var_args_call(1, **kwargs)
    
     结果是:
    
    arg1: 1
    arg2: two
    arg3: 3
    此文仅为鄙人学习笔记之用,朋友你来了,如有不明白或者建议又或者想给我指点一二,请私信我。liuw_flexi@163.com/QQ群:582039935. 我的gitHub: (学习代码都在gitHub) https://github.com/nwgdegitHub/
  • 相关阅读:
    如何改变拖动时鼠标悬浮样式
    Nginx的server为0.0.0.0/0.0.0.1的作用?
    redis的lua脚本拓展,返回nil及其判断
    lua异常捕获
    nginx配置及常见问题
    centos安装postgresql-10及操作
    23种设计模式
    php的function() use($args)用法
    lua中self.__index = self是什么意思?
    lor实践
  • 原文地址:https://www.cnblogs.com/liuw-flexi/p/8978878.html
Copyright © 2020-2023  润新知