Python 函数(参数组合)
在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数
定义一个函数,包含上述4种参数:
def func(a,b,c=0,*args,**kw):
print 'a=',a,'b=',b,'c=',c,'args=',args,'kw=',kw
在函数调用的时候,Python解释器自动按照参数位置和参数名把对应的参数传进去。
print func(1,2)
# = > a= 1 b= 2 c= 0 args= () kw= {} print func(1,2,c=3)
# = > a= 1 b= 2 c= 3 args= () kw= {} print func(1,2,3,'a','b')
# => a= 1 b= 2 c= 3 args= ('a', 'b') kw= {} print func(1,2,3,'a','b',x=99)
# =>a= 1 b= 2 c= 3 args= ('a', 'b') kw= {'x': 99}
最神奇的是通过一个tuple和dict,你也可以调用该函数:
args=(1,2,3,4)
kw={'x':99}
print func(*args,**kw) # =>a= 1 b= 2 c= 3 args= (4,) kw= {'x': 99}
所以,对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的。
转自:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738449338c8a122a7f2e047899fc162f4a7205ea3000
Python 函数(参数组合)的更多相关文章
- 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)
详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类 Python中函数参数定义及调用函数时传参 ...
- Python函数参数详解
Python函数参数详解 形参与实参 什么是形参 在定义函数阶段定义的参数称之为形式参数,简称形参,相当于变量名. 什么是实参 在调用函数阶段传入的值称为实际参数,简称实参.相当于"变量值& ...
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- python函数参数的pack与unpack
python函数参数的pack与unpack 上周在使用django做开发的时候用到了mixin(关于mixin我还要写一个博客专门讨论一下,现在请参见这里),其中又涉及到了一个关于函数参数打包(pa ...
- Python 关于Python函数参数传递方式的一点探索
关于Python函数参数传递方式的一点探索 by:授客 QQ:1033553122 实践代码 #!/usr/bin/env python # -*- coding:utf-8 -*- __author ...
- python 函数参数介绍
python 函数参数介绍 python 使用过程总,总会遇到 *args,**kw形式的参数,总是一头雾水,而且网上介绍的或是叫法不一,为此专门深入实践进而了解了函数参数的使用 具体请看代码 #-* ...
- python函数参数类型及其顺序
根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSI ...
- Python 函数参数类型大全(非常全!!!)
Python 函数参数类型大全(非常全!!!) 1.在python编写程序里面具有函数文档,它的主要作用是为了让别人可以更好的理解你的函数,所以这是一个好习惯,访问函数文档的方式是: MyFuncti ...
- Python函数参数默认值的陷阱和原理深究(转)
add by zhj: 在Python文档中清楚的说明了默认参数是怎么工作的,如下 "Default parameter values are evaluated when the func ...
- python函数-参数
python函数-参数 实验室 # 演示形参是可变类型 def register(name, hobby, hobby_list=[]): hobby_list.append(hobby) print ...
随机推荐
- delphi Tdxribbon 设置背景和skin 皮肤
https://blog.csdn.net/maxwoods/article/details/8592389 http://www.cnblogs.com/baoluo/archive/2011/04 ...
- android:提升 ListView 的运行效率
之所以说 ListView 这个控件很难用,就是因为它有很多的细节可以优化,其中运行效率 就是很重要的一点.目前我们 ListView 的运行效率是很低的,因为在 FruitAdapter 的 get ...
- android:NinePatch图片制作
一.工具介绍 这是一张PNG图片,为了方便观看做的比较大.在Android中使用NinePatch图片的一般都是很小的图片,因为当内容多了的时候,背景会自动拉伸来适应内容,而如果图片做大了,内容少,则 ...
- ADSL理解
ADSL技术提供的上行和下行带宽不对称,因此称为非对称数字用户线路. ADSL技术采用频分复用技术把普通的电话线分成了电话.上行和下行三个相对独立的信道,从而避免了相互之间的干扰.用户可以边打电话边上 ...
- PHP ~与各加速工具的性能对比~
参与测试的加速器:Xcache,Opcache,hhvm Xcache简介 前面已经介绍了PHP加速器的原理和功用(参见LAMP架构之PHP-FPM 服务器),xcache作为目前使用广泛的PHP ...
- Windows 下使用 MinGW 和 CMake 进行开发
CMake 是个非常棒的项目管理工具,这已经是毋庸置疑的. 一些小工具需要在 win 下开发,所以今天探索使用 MinGW 和 CMake 在 win 下的搭配使用.简单做记录. MinGW 使用 Q ...
- libmongoc关于\$pullAll和\$addToSet的一个使用问题记录
问题描述及测试结果 在使用mongodb时,对一个document中的数组成员进行更新的时候,可以使用$pull $push $pop $addToSet $pullAll和$each $positi ...
- linux一些稍微高级的命令
cut 命令:提取文件中指定的字段(列).字符内容.单词的默认分隔符为空格. cut [选项]... [文件]... 选项: -b 按照字节切 -c 按照字符切 -d 指定分割符 -f 指定 ...
- linux达人养成计划学习笔记(七)—— 用户登录查看命令
一.查看用户登录信息 1.命令格式 w 2.命令结果 第一行信息是:系统当前时间 系统运行总时间 登录用户数量 一分钟/五分钟/十分钟的系统负载(越大越差) 二.who命令 1 ...
- 二值化函数cvThreshold()参数CV_THRESH_OTSU的疑惑【转】
查看OpenCV文档cvThreshold(),在二值化函数cvThreshold(const CvArr* src, CvArr* dst, double threshold, double max ...