代码:

def fun(x):
return x print fun(10)

函数fun(x)接受参数是x,传入数字"10",打印函数的返回值结果 就是10,如果我传递多个参数时,程序就会出错,如下图:

def fun(x):
return x print(fun(10,20))
Traceback (most recent call last):
File "aa.py", line 7, in <module>
print(fun(10,20))
TypeError: fun() takes exactly 1 argument (2 given)

给出的结果是:给了2个参数。为了解决这个问题,引入*args把多余的参数放入到元组中,如下图:

def fun(x, *args):
print args
return x print(fun(10,20))

这样的话,x只接受第一个参数,其他的都存放到args这个元组中去,结果如下图:

(20,)
10

元组里面是不能存放字典类型的数据,如果我存放字典类型数据是否会报错?看下图:

def fun(x, *args):
print args
return x print(fun(10,20,y=2))
Traceback (most recent call last):
File "aa.py", line 8, in <module>
print(fun(10,20,y=2))
TypeError: fun() got an unexpected keyword argument 'y'

此时,给出报错:捕捉到一个未知的关键字参数 y,为了解决这个我们需要引入 **kw来解决传入参数是字典类型的数据,看下图:

def fun(x, *args, **kw):
print kw
print args
return x print(fun(10,20,y=2))

运行结果如下图:

{'y':20}
(20,
10

看下整个效果:

def fun(x, *args, **kw):
print kw
print args
return x print(fun(10,20,40,50.5,y=2,z=3,f=5.5))

运行结果:

{'y': 2, 'z': 3, 'f': 5.5}
(20, 40, 50.5)
10

主要注意的地方是:fun(x, *args, **kw) 在调用函数时,传入字典参数是不可以传入 x = * 这种类型,会出现错误,如下图:

Traceback (most recent call last):
File "aa.py", line 9, in <module>
print(fun(10,20,40,50.5,z=3,x=2,y=5.5))
TypeError: fun() got multiple values for keyword argument 'x'
  File "aa.py", line 9
print(fun(x=2,10,20,40,50.5,z=3,y=5.5))
SyntaxError: non-keyword arg after keyword arg

python中函数接收多余参数的更多相关文章

  1. python中函数的参数解析

    python中函数的各种参数梳理: 1.形参:函数定义时传入的参数 2.实参:函数调用时传入的参数 (有形参必传实参,形参里自身特点可不传的,可传可不传) 3.缺省参数:不传为默认值,传了会覆盖(下面 ...

  2. python中函数的参数

    函数参数(一) 思考一个问题,如下: 现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代码可以吗?有什么缺陷吗? def add2num(): a = 1 ...

  3. python中函数的初览

    资料参考来源:https://www.cnblogs.com/haifeima/p/9595449.html 现在听到函数这两个字时还会头疼一会,因为我想到的是数学中的函数,但python中的函数不会 ...

  4. python 中函数的参数

    一.python中的函数参数形式 python中函数一般有四种表现形式: 1.def function(arg1, arg2, arg3...) 这种是python中最常见的一中函数参数定义形式,函数 ...

  5. python 中函数参数传递形式

    python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...

  6. (转)python中函数参数中如果带有默认参数list的特殊情况

    在python中函数参数中如果带有默认参数list遇到问题 先看一段代码 1 2 3 4 5 6 7 8 9 def f(x,l=[]):     for i in range(x):         ...

  7. 学以致用三十二-----python中函数的括号使用

    一直以来对python中函数括号的使用,有点分不清楚,到底什么时候用括号,什么时候不用括号,造成了很大看困惑. 今天来总结下. class aaa(): y = 'you' def __init__( ...

  8. python中函数的定义和详细的使用方法

    1. 函数的概念,函数是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集   2. 函数的作用,使用函数可以加强代码的复用性,提高程序编写的效率   3. 函数的使用,函数必须先创建才 ...

  9. Python中函数的参数传递与可变长参数

    转自旭东的博客原文 Python中函数的参数传递与可变长参数 Python中传递参数有以下几种类型: (1)像C++一样的默认缺省函数 (2)根据参数名传参数 (3)可变长度参数 示例如下: (1)默 ...

随机推荐

  1. 浅析Java中CountDownLatch用法

    http://www.cnblogs.com/yezhenhan/archive/2012/01/07/2315652.html

  2. jQuery File Upload 单页面多实例的实现

    jQuery File Upload 的 GitHub 地址:https://github.com/blueimp/jQuery-File-Upload 插件描述:jQuery File Upload ...

  3. wifi万能钥匙自媒体平台开放注册(付注册流程)

    12月13日,有网友爆料,wifi万能钥匙自媒体开放注册,看来自媒体还没有达到饱和阶段,也印证了自媒体时代才刚刚到来.现在这个自媒体的时代,几乎大多互联网企业都开通了自己的自媒体,比较知名的像今日头条 ...

  4. track message forwards, avoiding request loops, and identifying the protocol capabilities of all senders along the request/response chain

    https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html The TRACE method is used to invoke a remote, ...

  5. webbrowser 内核切换

    修改注册表位置: [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER ...

  6. 给Source Insight做个外挂系列之六--“TabSiPlus”的其它问题

    关于如何做一个Source Insight外挂插件的全过程都已经写完了,这么一点东西拖了一年的时间才写完,足以说明我是一个很懒的人,如果不是很多朋友的关心和督促,恐怕是难以完成了.许多朋友希望顺着本文 ...

  7. python thrift 服务端与客户端使用

    一.简介 thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, ...

  8. Qt容器类——1. QList类、QLinkedList类和QVector类

    在开发一个较高性能需求的应用程序时,程序员会比较关注这些容器类的运行效率,表2.1列出了QList.QLinkedList和QVector容器的时间复杂度比较. 1.QList类 QList<T ...

  9. LeetCode Fizz Buzz

    原题链接在这里:https://leetcode.com/problems/fizz-buzz/ 题目: Write a program that outputs the string represe ...

  10. Nginx 安装

    1 编译环境 yum -y groupinstall "Development Tools" "Server Platform Development"   2 ...