zoukankan      html  css  js  c++  java
  • 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/
  • 相关阅读:
    装饰器 转载自 http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html
    no_merge hint
    优化实例- not use hash to avoid temp space issue
    明日计划
    优化实例- not in 和 not exists
    insert into varchar2(8000)
    图像的批处理
    图像数据类型及颜色空间转换
    图像的读取,显示与保存(基于skimage模块)
    图像直方图
  • 原文地址:https://www.cnblogs.com/liuw-flexi/p/8978878.html
Copyright © 2011-2022 走看看