关于python的函数的*和**参数:

1.将足够的参数解包以后传递给函数:
>def f(p1, p2, p3, p4):
>     print p1+p2+p3+p4
>
>li = [1, 2, 3, 4]
>f(*li)
10
>
>tu = (1, 2, 3, 4)
>f(*tu)
10
>
>di = {‘p1‘:1, ‘p2‘:2, ‘p3‘:3, ‘p4‘:4}
>f(**di)
>10

2.使用封包的方法访问多余的参数
>>> def funct(*para, **para_dict):

...     print para

...     print para_dict

...

>>> funct(1,2,3,4,x=5,y=6,z=7)

(1, 2, 3, 4)

{‘y‘: 6, ‘x‘: 5, ‘z‘: 7}
>>> funct(1,x=5,y=6,z=7)

(1,)

{‘y‘: 6, ‘x‘: 5, ‘z‘: 7}
将多余的位置参数封包入para,将多余的关键字参数封包入para_dict,前者是一个序列(明确一点:元组tuple),后者是一个字典。

关于python的函数的*和**参数:,布布扣,bubuko.com

时间: 2024-10-05 00:33:28

关于python的函数的*和**参数:的相关文章

C/C++ Python的函数默认参数

发现C/C++  Python的函数可以使用默认参数,来减少传参时候的参数个数. 但是:这样的默认参数最好是不变对象! #include <stdio.h> #include <string.h> void func_1(int id, char s[], char city[] = "Bejing") { printf("%d, %s, %s",id, s, city); } int main() { func_1(1, "李金旭

Python随笔-函数

在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. def GetMax(v1, v2):#注意冒号 if v1>v2:#注意冒号 return v1 else:#注意冒号 return v2 print(GetMax(1,2)) 如果想定义一个什么事也不做的空函数,可以用pass语句: >>> def fun(): pass pass还可以用在其他语句,比如: if age

Python的三种可变参数

初学python没多久,对python中函数的可变参数有点头晕,查阅了stackflow,现总结一下可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中,在函数内部会自动认为是一个元组或列表 关键字参数 关键字参数在python中习惯用**kw表示,可以传入0到任意多个“关键字-值”,参数在函数内部被当做一个字典结构.例如 def testArg(**kw) def testArg(

Python函数中的参数(一)

函数传递参数时的简要关键点: 1.参数的传递是通过自动将对象赋值给本地变量名来实现的.函数参数在实际中只是Python赋值的一个实例.因为引用是以指针的形式实现的,所有的参数实际上都是通过指针进行传递的. 2.在函数内部的参数名的赋值不会影响调用者. 3.改变函数的可变对象参数的值也许会对调用者有影响.即是参数是简单的赋值给传入的对象,函数能够就地改变传入的可变对象,因此其结果会影响调用者.可变参数对于函数来说是可以做输入和输出的. 对可变对象的在原处的修改会影响其他引用了该对象的变量. 如果不

python之函数的参数

定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解. Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码. 位置参数 我们先写一个计算x2的函数: def power(x): return x * x 对于powe

python 中函数的参数

一.python中的函数参数形式 python中函数一般有四种表现形式: 1.def function(arg1, arg2, arg3...) 这种是python中最常见的一中函数参数定义形式,函数参数之间用逗号分隔,调用的时候的参数必须与定义的时候相同,且参数顺序与形参一一对应. ? 1 2 3 4 5 6 7 8 9 def myfunction(a, b):     print a,b #正确调用 myfunction(3,7) #错误调用 myfunction(3) myfunctio

Python函数中的参数(二)

当使用混合特定的参数匹配模型时,Python将会遵循以下有关顺序的法则: 1.在函数调用中,参数必须以这样的顺序出现:任何位置参数(Value).任何关键字参数(name = Value)和*sequence形式的组合,最后是**dict形式 2.在函数头部,参数必须以如下的顺序出现:任何一般参数.任何默认参数.如果有的话,是*name(在Python3.0中是*)的形式,然后是任何name或name=value keyword-only参数,最后是**name形式 Python内部是使用以下的

[转]Python函数的各种参数用法(含星号参数)

Python中函数的参数有4种形式,分别是: 位置或关键字参数(Positional-or-keyword parameter) 仅位置的参数(Positional-only parameter) 任意数量的位置参数(var-positional parameter) 任意数量的关键字参数(var-keyword parameter) 第一种:位置或关键字参数 这种参数是Python中默认的参数类型,定义这种参数后,可以通过位置参数,或者关键字参数的形式传递参数: ## 位置或者关键字参数 ##

Python中函数的参数定义和可变参数

转自:http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944416.html  简洁易懂啊,好文 刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解.其实只要把函数参数定义搞清楚了,就不难理解了. 先说说函数定义,我们都知道,下面的代码定义了一个函数funcA def funcA():  pass    显然,函数funcA没有参数(同时啥也不干:D