python中函数接收多余参数
代码:
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中函数接收多余参数的更多相关文章
- python中函数的参数解析
python中函数的各种参数梳理: 1.形参:函数定义时传入的参数 2.实参:函数调用时传入的参数 (有形参必传实参,形参里自身特点可不传的,可传可不传) 3.缺省参数:不传为默认值,传了会覆盖(下面 ...
- python中函数的参数
函数参数(一) 思考一个问题,如下: 现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代码可以吗?有什么缺陷吗? def add2num(): a = 1 ...
- python中函数的初览
资料参考来源:https://www.cnblogs.com/haifeima/p/9595449.html 现在听到函数这两个字时还会头疼一会,因为我想到的是数学中的函数,但python中的函数不会 ...
- python 中函数的参数
一.python中的函数参数形式 python中函数一般有四种表现形式: 1.def function(arg1, arg2, arg3...) 这种是python中最常见的一中函数参数定义形式,函数 ...
- python 中函数参数传递形式
python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...
- (转)python中函数参数中如果带有默认参数list的特殊情况
在python中函数参数中如果带有默认参数list遇到问题 先看一段代码 1 2 3 4 5 6 7 8 9 def f(x,l=[]): for i in range(x): ...
- 学以致用三十二-----python中函数的括号使用
一直以来对python中函数括号的使用,有点分不清楚,到底什么时候用括号,什么时候不用括号,造成了很大看困惑. 今天来总结下. class aaa(): y = 'you' def __init__( ...
- python中函数的定义和详细的使用方法
1. 函数的概念,函数是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集 2. 函数的作用,使用函数可以加强代码的复用性,提高程序编写的效率 3. 函数的使用,函数必须先创建才 ...
- Python中函数的参数传递与可变长参数
转自旭东的博客原文 Python中函数的参数传递与可变长参数 Python中传递参数有以下几种类型: (1)像C++一样的默认缺省函数 (2)根据参数名传参数 (3)可变长度参数 示例如下: (1)默 ...
随机推荐
- Learn ZYNQ(10) – zybo cluster word count
1.配置环境说明 spark:5台zybo板,192.168.1.1master,其它4台为slave hadoop:192.168.1.1(外接SanDisk ) 2.单节点hadoop测试: 如果 ...
- Request 、Response 与Server的使用
纯属记录总结,以下图片都是来自 ASP.NET笔记之 Request .Response 与Server的使用 Request Response Server 关于Server.MapPath 方法看 ...
- CentOS下通过yum安装svn及配置
CentOS下通过yum安装svn及配置 1.环境centos5.5 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata s ...
- Angular2 起步(1)
1.安装 nodejs(最新稳定版)https://nodejs.org/en/ 安装 typescript npm install -g typescript 安装 angular-cli(关于CL ...
- escape,encodeURI,encodeURIComponent的区别
escape是对字符串进行编码而另外两种是对URL. encodeURI方法不会对下列字符编码 ASCII字母 数字 ~!@#$&*()=:/,;?+'encodeURIComponent方法 ...
- css定位 与position
本文同时发表于本人个人网站 www.yaoxiaowen.com 在正式讨论position之前,我们需要知道几个概念. 块元素:独占一行的元素.比如div,h1~h6,p等,它是自带换行的. 内联元 ...
- HTML中添加背景音乐
<audio controls="controls" height="100" width="100"> <source ...
- 为什么要使用CachedRowSetImpl?
很多情况我们使用ResultSet 就会因为这样那样的问题,rs被关闭或数据链接被关闭,导致ResultSet不能使用.其实这个问题我们可以用CachedRowSetImpl来解决.我的理解是这是一个 ...
- 获取ip ,百度地图坐标点 和 在 后台调用 url()
protected void getip() { string ips = HttpContext.Current.Request.UserHostA ...
- dynamoDb 使用
如果写入时候结构体为: type Item struct { DeviceId string `dynamo:"deviceid"` Play int `dynamo:" ...