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

转自旭东的博客原文 Python中函数的参数传递与可变长参数

Python中传递参数有以下几种类型:

(1)像C++一样的默认缺省函数

(2)根据参数名传参数

(3)可变长度参数

 

示例如下:

(1)默认参数

1 def foo(text,num=0):
2     print text,num 3 4 foo("asd") #asd 0 5 foo("def",100) #def 100

(2)参数名传递方式

1 def foo(ip,port):
2     print "%s:%d" % (ip,port) 3 4 foo("192.168.1.0",3306) #192.168.1.0:3306 5 foo(port=8080,ip="127.0.0.1") #127.0.0.1:8080

(3)可变长度参数

 
#coding:utf-8       #设置python文件的编码为utf-8,这样就可以写入中文注释
def foo(arg1,*tupleArg,**dictArg):print "arg1=",arg1  #formal_argsprint "tupleArg=",tupleArg  #()print "dictArg=",dictArg    #[]
foo("formal_args")

上面函数中的参数,tupleArg前面“*”表示这个参数是一个元组参数,从程序的输出可以看出,默认值为();dicrtArg前面有“**”表示这个字典参数(键值对参数)。可以把tupleArg、dictArg看成两个默认参数。多余的非关键字参数,函数调用时被放在元组参数tupleArg中;多余的关键字参数,函数调用时被放字典参数dictArg中。

 下面是可变长参数的一些用法:

#coding:utf-8       #设置python文件的编码为utf-8,这样就可以写入中文注释
def foo(arg1,arg2="OK",*tupleArg,**dictArg):print "arg1=",arg1print "arg2=",arg2for i,element in enumerate(tupleArg):print "tupleArg %d-->%s" % (i,str(element))for  key in dictArg:print "dictArg %s-->%s" %(key,dictArg[key])myList=["my1","my2"]
myDict={"name":"Tom","age":22}
foo("formal_args",arg2="argSecond",a=1)
print "*"*40
foo(123,myList,myDict)
print "*"*40
foo(123,rt=123,*myList,**myDict)

 

转载于:https://www.cnblogs.com/arxive/p/9900570.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab的plot没有反应,用plot画图没有反应

本帖最后由 躺着看雨 于 2018-6-7 10:35 编辑0.0854232732222489 -1.47227270375083e-08 17.0844721322814 17.08465464444980.0854232767446789 -1.41282430199396e-08 17.0844728367686 17.08465534893580.0854232802671089 …

转]MATLAB 与 C 语言的接口

MATLAB 到 C 语言程序的转换可以由两种途径完成,其一是 MATLAB 自己提供的 C 语言翻译程序 mcc, 另一种是原第 3 方公司 MathTools 开发的 MATCOM。后者出现较早,功能远比 MATLAB 自己的翻译程序强大,所以 MathTools 公司已经被 MathWorks 公…

找call写call_如何将Google Call Widget添加到任何网页

找call写callAdding a Google Call Widget to your website or blog allows visitors to contact you using your Google Voice number. The widget provides an easy and cost-effective way to provide live customer support without the customer knowing your real number…

XML与web开发-01- 在页面显示和 XML DOM 解析

前言: 关于 xml 特点和基础知识,可以菜鸟教程进行学习:http://www.runoob.com/xml/xml-tutorial.html 本系列笔记,主要介绍 xml 在 web 开发时需要了解的知识 XML 在页面显示数据 XML 指可扩展标记语言(eXtensible Mar…

酷安应用市场php源码,酷安应用市场 v11.0.3-999 去广告极限精简版

酷安,真实有趣的数码社区。酷安app,国内安卓应用市场客户端,应用资源丰富,应用开发者水准高,应用无首发Logo,原汁原味上架,得到了安卓用户群广泛认可。有人说现在的酷安市场(酷安网)没有以前那么…

再战android-语音识别2(修改配置)

可怕的半桶水一直在晃。程序中需要根据用户的选择设置语音识别的语言(目前科大讯飞支持英文、普通话、粤语),不想每次要用户去IatSetting中去改,需要能直接修改IatSetting的设置。之前移植的IatSetting页面没有细究,直…

chromebook刷机_如何将网站添加到您的Chromebook架子上

chromebook刷机Bookmarks are great to keep your favorite sites nearby, but they aren’t the fastest option out there. Instead, why not add shortcuts for your favorite websites right on the Chromebook shelf? 书签可以很好地将您喜欢的网站保留在附近&#xff0c…

php判断外链,php检查字符串中是否有外链的方法

这篇文章主要介绍了php检查字符串中是否有外链的方法,涉及php针对字符串的正则匹配的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下本文实例讲述了php检查字符串中是否有外链的方法。分享给大家供大家参考。具体实现方法如下:/*** is_external_link 检测字符…

【经验分享】产品、运营人如何告别重复的数据分析工作?

我是一名互联网的运营打杂MM,除了每天繁忙的工作,每周、每月的数据汇报也是我头疼的东东。因为本身我不聪明,数学也不是太好,对数据不那么爱,而且还要做数据分析,对于我这种数据小白分分钟崩溃。每周、每月…

JVM虚拟机调参

JVM虚拟机调参 一、堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64…

Locktopus锁定iOS设备上的单个应用程序

If you want to share a cool game on your iOS device but not let everyone read your email, Locktopus offers a simple app-by-app lockdown solution. 如果您想在iOS设备上共享一个很棒的游戏,但又不想让所有人都阅读您的电子邮件,那么Locktopus提…

php speedtest,大神教你如何搭建自己的web speedtest站点

导读speedtest作为一款在线并且可视化的网速测试工具。使用方法简单,无需下载、安装多余软件,只需有浏览器即可。那如何搭建一个自己的web speedtest站点呢?项目开源地址:https://github.com/adolfintel/speedtest安装web,php,git…

MySQL服务器硬件和操作系统调节

1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。 2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 3. 使用电池供电的RAM(注:RAM即随机存储器&am…

数据结构小结+模板

\[OI中的数据结构\] \[By\;TYQ\] 线性结构 大部略 单调栈 栈 , 但是push的时候要弹出所有比他小/大的(多用于优化Dp) 单调队列 队列 , 同单调栈 树状结构 树状数组 核心:lowbit(x) (x) & (-x) ...其实lowbit(x) 2^x的最低非0位 PION8012初赛中考了...但只涉及正数... 为什…

视频翻录_将DVD解密并复制到硬盘驱动器而无需翻录

视频翻录Have you ever wanted to make backup copies of your DVDs but didn’t want to mess with confusing DVD ripping software? Today, we’ll look at drop dead simple method to decrypt DVDs on the fly with DVD43 so you can easily copy them to your hard dri…

详解面向对象、构造函数、原型与原型链

详解面向对象、构造函数、原型与原型链 为了帮助大家能够更加直观的学习和了解面向对象,我会用尽量简单易懂的描述来展示面向对象的相关知识。并且也准备了一些实用的例子帮助大家更加快速的掌握面向对象的真谛。 jQuery的面向对象实现封装拖拽简易版运动框架封装这…

如何将Wii遥控器用作陀螺仪鼠标

If you have a spare Nintendo Wii remote with the Motion Plus add-on, you can use it to control your Windows PC from across the room. Here’s how to get it working in a couple of easy steps. 如果您有带Motion Plus附加组件的备用Nintendo Wii遥控器,则…

68.iOS设备尺寸及型号代码(iPhoneXR/XS)

所有设备型号官网地址: https://www.theiphonewiki.com/wiki/Models iPhone: 机型像素比例像素密度屏幕尺寸机型代码发布日期iPhone 2g4803203:2163ppi3.5iPhone1,12008.01iPhone 3g4803203:2163ppi3.5iPhone1,22008.06iPhone 3gs4803203:2163ppi3.5iPhone2,12009.0…

php 自带 web server 如何重写 rewrite .htaccess

为什么80%的码农都做不了架构师&#xff1f;>>> <?php // filename: route.php if (preg_match(/\.(?:png|jpg|jpeg|gif|css|js)$/, $_SERVER["REQUEST_URI"])) {return false; } else {include __DIR__ . /index.php; } 更好的写法&#xff1a; &l…

oracle11g导入错误,oracle 11g导入到10g引起的错误

环境介绍老环境新环境操作系统&#xff1a;redhat5.8 64位redhat6.4 64位数据库版本&#xff1a;oracle 10.2.0.4 64位oracle 11.2.0.4 64位背景&#xff1a;之前有一套老的数据库rac是基于oracle10g搭建&#xff0c;跑了几年了。现在前端应用程序准备升级&#xff0c;考虑到前…