1. 元组形式

def test1(*args):

    print('################test1################')
print(type(args))
print(args)

正确调用:

test1(1, 2)          #args在函数体内部为tuple类型

错误调用:

test1(1, b=2)      #TypeError: test1() got an unexpected keyword argument 'b'
test1(a=1, b=2)  #TypeError: test1() got an unexpected keyword argument 'a'
test1(a=1, 2)      #TypeError: test1() got an unexpected keyword argument 'a'

2. 字典形式

def test2(**kargs):

    print('################test2################')
print(type(kargs))
print(kargs)

正确调用:

test2(a=1, b=2)  #kargs在函数体内部为dict类型

错误调用:

test2(1, 2)          #TypeError: test2() takes exactly 0 arguments (2 given)
test2(1, b=2)      #TypeError: test2() takes exactly 0 arguments (2 given)
test2(a=1, 2)      #SyntaxError: non-keyword arg after keyword arg

3. 混合形式

def test3(*args, **kargs):

    print('################test3################')
print(type(args))
print(args)
print(type(kargs))
print(kargs

正确调用:

test3(1, 2)          #args在函数体内部为tuple类型,kargs为空dict类型
test3(1, b=2)      #args在函数体内部为tuple类型,kargs为dict类型
test3(a=1, b=2)  #args在函数体内部为空tuple类型,kargs为dict类型

错误调用:

test3(a=1, 2)      #SyntaxError: non-keyword arg after keyword arg

 练习:

 def test(num,*args,**kwargs):
print('---test1---%d' %num)
print('---test2---',args)
print('---test3---',kwargs) test(100)
test(100,200)
test(100,200,300,mm=100)

答案:

 C:\>python test.py
---test1---100
---test2--- ()
---test3--- {} ---test1---100
---test2--- (200,)
---test3--- {} ---test1---100
---test2--- (200, 300)
---test3--- {'mm': 100}

Python 不定参数函数的更多相关文章

  1. Python不定参数函数

    1. 元组形式 def test1(*args): print('################test1################') print(type(args)) print(arg ...

  2. 不定参数函数原理以及实现一个属于自己的printf函数

    一.不定参数函数原理 二.实现一个属于自己的printf函数 参考博文:王爽汇编语言综合研究-函数如何接收不定数量的参数

  3. c++不定参数函数

    不定参数当年做为C/C++语言一个特长被很多人推崇,但是实际上这种技术并没有应用很多.除了格式化输出之外,我实在没看到多少应用.主要原因是这种技术比较麻烦,副作用也比较多,而一般情况下重载函数也足以替 ...

  4. Python可变参数函数用法详解

    来自:http://c.biancheng.net/view/2257.html 很多编程语言都允许定义个数可变的参数,这样可以在调用函数时传入任意多个参数.Python 当然也不例外,Python ...

  5. python 可变参数函数定义* args和**kwargs的用法

    python函数可变参数 (Variable Argument) 的方法:使用*args和**kwargs语法.其中,*args是可变的positional arguments列表,**kwargs是 ...

  6. GO语言练习:不定参数函数

    1.代码 2.运行 1.代码 package main import "fmt" func MyPrintf(args ...interface{}){ for _, arg := ...

  7. PYTHON不定参数与__DOC__

    def total(initial = 5, *numbers, **keywords): count = initial for number in numbers: count += number ...

  8. oc自定义不定参数函数

    -(void)getValueFormConfig:(NSString *)key,... or -(void)getValueFormConfig:(NSString *)key,...NS_REQ ...

  9. UE3多参数函数实现

    基础宏定义 #define VARARG_EXTRA(A) A, #define VARARG_NONE #define VARARG_PURE =0 static inline DWORD Chec ...

随机推荐

  1. 2-Sixth Scrum Meeting20151206

    任务分配 闫昊: 今日完成:请假.(最近代码写得多……很累……) 明日任务:完成数据库设计. 唐彬: 今日完成:ios客户端代码的深度学习. 明日任务:读IOS讨论区后台接口. 史烨轩: 今日完成:请 ...

  2. 2018-2019-20172321 《Java软件结构与数据结构》第九周学习总结

    2018-2019-20172321 <Java软件结构与数据结构>第九周学习总结 教材学习内容总结 第15章 图 无向图 图由顶点和边组成. 顶点由名字或标号来表示,如:A.B.C.D: ...

  3. 安卓开发神器vysor+adb wifi

    准备: 1.vysor需要FQ从google应用商店下载,装在google上,目前知道的免费的vysor的作用是电脑显示手机屏幕并且能操控手机. 步骤:FQ后就能下载了,FQ方法不赘述.

  4. Mevan(转)

    Missing artifact com.oracle:ojdbc6:jar:11.2.0.1.0问题解决 ojdbc包pom.xml出错 置顶 2017年08月23日 10:55:25 阅读数:96 ...

  5. 1到N中“1”出现的次数

    题目:给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数 思路:刚开始做的时候,是想从1到N进行遍历,其中每个数都出现1的个数加起来,最后得出结果,但是老师让我们找规 ...

  6. Ubuntu下ssh连接在服务端显示图形界面

    Ubuntu下ssh连接在服务端显示图形界面 step1 安装ssh服务 服务端安装运行ssh,在终端运行命令如下: sudo apt-get install openssh-server 在客户端安 ...

  7. Java 单生产者消费者问题

    package com.cwcec.test; class Resource { private int count = 0; private boolean flag = false; public ...

  8. 51单片机RAM 数据存储区学习笔记

    转自:http://www.eepw.com.cn/article/216237_2.htm 1.RAM keil C语言编程 RAM是程序运行中存放随机变量的数据空间.在keil中编写程序,如果当前 ...

  9. OSG学习:裁剪变换(1)

    在OSG中,默认了6个裁剪平面以去除没有必要显示的物体.也可以自己定义其他的裁剪平面来确定裁剪. osg::ClipPlane类继承自osg::StateAttribute类,封装了OpenGL中的g ...

  10. 停止ipv6

    在Centos5.5默认的状态下,ipv6是被启用的.因为我们不使用ipv6,所以,可以停止ipv6,以最大限度地保证安全和快速.首先确认一下ipv6是不是处于被启动的状态.[root@sample ...